数组&对象

2018-12-27 07:42:11来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、遍历数组的几种方式
 
var arr = [1,2,3];
Array.prototype.test
=function(){} arr.name='jq'
 
1、 for 
/*
* index是number类型的,可以使用break,continue,return语句
* 可以遍历对象
*/
for (var index = 0, length = arr.length; index < length; index++) { console.log(index); // 0, 1, 2 console.log(arr[index]); // 1, 2, 3 }

 

2、 for in 遍历数组索引
/*
* 除了遍历数组元素外,还会遍历自身可枚举属性,以及原型链上属性
* 适用于普通对象,不适合数组遍历
* 可以使用break,continue,return语句
*/

for (var index in arr) {
    console.log(index); // 0, 1, 2, name, test
    console.log(arr[index]); // 1, 2, 3, jq, ? (){}
}

 

3、 for of 遍历数组元素值
/*
* 只遍历数组元素
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* 可以使用break,continue,return语句
*/

for (var item of arr) {
    console.log(item); // 1, 2, 3
}

 

4、 forEach 对数组每个元素执行一次提供的函数
/*
* 只遍历数组元素
* 参数:item 数组元素当前值,index 数组索引,array 数组本身
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* break,continue,return语句无效
*/

arr.forEach(function(item, index, array) {
    console.log(index); // 0, 1, 2
    console.log(item); // 1, 2, 3
})

 

5、 map 对数组元素处理,并返回一个新数组,原始数组不会被改变
/*
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* break,continue,return语句无效
* 参数:item 数组元素当前值,index 数组索引,array 数组本身
*/

arr.map(function(item, index, array) {
    console.log(index); // 0, 1, 2
    console.log(item); // 1, 2, 3
    return 0;
})

 

6、 reduce = map + filter
/*
* reduce 使用回调函数迭代地将数组简化为单一值
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* 参数:callback 和 初始值
* accumulator: 函数上一次调用的返回值
* item: item 数组元素当前值
*/

(1) 省略初始值,则accumulator为 arr[0], item为arr[1], index为1
arr.reduce(function(accumulator, item, index, array) {
    return accumulator + item; //求数组元素和
});

执行顺序:
1 + 2
3 + 3

(2) 有初始值,则accumulator为initValue,item为arr[0], index为0
arr.reduce(function(accumulator, item, index, array) {
    return accumulator + item; //求数组元素和
}, 0);

执行顺序:
0 + 1
1 + 2
3 + 3

优点:减少数组迭代次数
 
(7) filter 返回符合指定条件的新数组
/*
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* item: item 当前数组元素
*/

arr.filter(function(item, index, array) {
    return (item > 1);
})


结果:[2, 3]

 

8、 find 返回符合指定条件的第一个元素/*
* 只适用于数组,Set,Map,类似数组对象,不适合普通对象对象
* item: item 当前数组元素
*/

arr.find(function(item, index, array) {
    return (item > 1);
})

结果:2

 

二、遍历对象的几种方式
1、for
2、for in
3、将对象转为数组Object.keys

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:分页功能的简单实现。使用模板引擎

下一篇:js keyup、keypress和keydown事件 详解