美文网首页前端
js中的各种遍历方式

js中的各种遍历方式

作者: pengkiw | 来源:发表于2020-06-20 19:29 被阅读0次

es5中的循环

for循环(可用 break; continue;)

forEach (不可用 break; continue; 可用return;)

let arr = [1, 2, 3]
arr.forEach((v) => {
    if (v == 2) {
        return; //相当于 for中的continue;
    }
    console.log('v', v)
})

map (返回一个新的数组 不会改变旧的数组;)

let arr = [1, 2, 3]
let result = arr.map(function(value) {
    value += 1;
    return value
})
console.log(result, arr); // [2, 3, 4]   [1, 2, 3]

filter (返回过滤符合条件的元素 不会改变旧的数组)

let arr = [1, 2, 3]
let result = arr.filter(function(value) {
    return value == 2;
})
console.log(result, arr);

some(返回布尔值 判断是否有符合条件的)

let arr = [1, 2, 3]
let result = arr.some(function(value) {
    return value == 2
})
console.log(result, arr); // true  [1, 2, 3]

every(返回布尔值 判断是否都符合条件的)

let result = arr.every(function(value) {
    return value == 2
})
console.log(result, arr);  false [1, 2, 3]

reduce (实现去重、求最值、求和)

let arr = [1, 2, 3]
let result = arr.reduce(function(prev, cur) {
    return Math.max(prev, cur) //求最大值

}, 0)
console.log(result); //3
let arr = [1, 2, 3]

let result = arr.reduce(function(prev, cur) {
        return prev + cur; // 求和
}, 0)
console.log(result); //6
arr = [1, 2, 3, 2, 4, 3]
let result = arr.reduce(function(prev, cur) {
    prev.indexOf(cur) == -1 && prev.push(cur); //去重
    return prev; 
}, [])
console.log(result); // [1, 2, 3, 4]

for in(可用来遍历对象 遍历时会把原型链上新增的属性也遍历出来 不会遍历原生原型链上的属性)

Array.prototype.foo = function() {
    console.log('foo')
}
for (key in arr) {
    console.log('key', key);
    console.log('item', arr[key]);
}

es6中的循环

find (返回第一个找到的元素)

let arr = [1, 2, 3]
let res = arr.find(function(value) {
    return value == 2
})
console.log(res, arr); // 2 (3) [1, 2, 3]

for of

let arr = [1, 2, 3]
for (const item of arr) {
    console.log(item)  //1 2 3
}
let arr = [1, 2, 3]
for (const item of arr.values()) {
    console.log(item) //1 2 3
}
let arr = [1, 2, 3]
for (const item of arr.keys()) {
    console.log(item) //0 1 2
}
let arr = [1, 2, 3]
for (const [index, item] of arr.entries()) {
    console.log(index) // 0 1 2 
    console.log(item) //1 2 3
}

相关文章

  • js中的各种遍历方式

    es5中的循环 for循环(可用 break; continue;) forEach (不可用 break; co...

  • JS中各种遍历方法

    数组遍历方法 for循环 (★★★☆☆) 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果...

  • JS或Jquery之遍历对象数组取出字符串用逗号拼接方式

    使用JS遍历对象数组方式一如下: 使用JS遍历数组方式二如下: 使用Jquery遍历对象数组如下:

  • JS中的几种遍历方式

    简单整理一些自己常用的遍历循环方法,js的几个遍历各有千秋,区别各个方式的使用场景和如何跳出循环。 1.for循环...

  • JS Related

    JS几种数组遍历方式以及性能分析对比 javascript中in和hasOwnProperty区别

  • js各种遍历总结

    tips:接下去会在github写博客,简书不再更新和修改文章,欢迎大家逛逛我的新博客点击查看 ,我会尽量用更容易...

  • 遍历数组和对象2018-08-14

    js数组遍历和对象遍历 针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历;还有性能,优缺点等。 J...

  • 数组2

    js数组遍历和对象遍历 针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历;还有性能,优缺点等。 J...

  • for循环性能比较

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,...

  • JS遍历相关知识

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,...

网友评论

    本文标题:js中的各种遍历方式

    本文链接:https://www.haomeiwen.com/subject/uxdgxktx.html