array

数组的常用方法

concat() 方法 合并两个或多个数组,不会改变原数组,返回一个新数组

返回一个浅拷贝,如果数组中包含对象,原始数组与新数组都引用相同的对象;
concat可以将字符串和数字的值复制到新数组中

var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
// 将值连接到数组中
var alpha = ['a', 'b', 'c'];

var alphaNumeric = alpha.concat(1, [2, 3]);

console.log(alphaNumeric); 
// results in ['a', 'b', 'c', 1, 2, 3]

// 合并嵌套数组
var num1 = [[1]];
var num2 = [2, [3]];

var nums = num1.concat(num2);

console.log(nums);
// results in [[1], 2, [3]]

// modify the first element of num1
num1[0].push(4);

console.log(nums);
fill 方法 填充 用一个固定值填充一个数组,从指定的开始索引到结束索引,不包括结束索引,返回一个新的数组
arr.fill(value, start, end)  // value 要填充的值,start起始索引,默认为0,end 结束索引 默认this.length

fill 方法中如果 start 是一个负数,开始索引自动计算为 length+ start,如果 end 是一个负数,结束索引计算为length+end

Array(3).fill(2)
let arr= Array(3).fill({})
arr[0].a= 'hi'  // 如果填充的是对象,数组中的对象引用的是同一个
filter 方法 过滤 返回一个新数组
arr.filter(callback, thisArg)
find() 方法返回满足回调函数的 第一个值,否则返回 undefined,不会改变原数组
arr.find(callback, thisArg)

// 用对象的属性查找数组中的对象
var arr= [
    {name: 'hhh', value: 2},
    {name: 'fff', value: 3},
    {name: 'ddd', value: 2}
]
function findName(people){
    return people.name === 'fff'
}
arr.find(findName)  // {name: 'fff', value: 3}
forEAch 遍历数组 没有办法中止或者跳出 forEach() 循环
join 讲一个数组或者类数组的所有元素连接成一个字符串
var elem= ['hah', 'hehe', 'heihei']
elem.join() // 'hah,hehe,heihei'
elem.join('') //'hahheheheihei'
// 默认用, 拼接,如果数组长度为0,返回一个空字符创
// 用split转换回来后  类型为string
reduce 方法 将其结果汇总为单个返回值,返回一个值,不会改变原数组
如果数组为空,并且没有提供初始值,会抛出 TypeError ,如果数组仅有一个元素,且没有初始值,如果数组为空,有初始值,则这个唯一的值(数组中的元素或者初始值)将被返回,callback不会被执行
arr.reduce(callbak(要汇总的值,当前值,当前index, 原数组), 初始值)
// 累加对象数组中的值,必须提供初始值,以便各个item正确通过你的函数
var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );
var maxCallback2 = ( max, cur ) => Math.max( max, cur );

// reduce() 没有初始值
[ { x: 22 }, { x: 42 } ].reduce( maxCallback ); // 42
[ { x: 22 }            ].reduce( maxCallback ); // { x: 22 }
[                      ].reduce( maxCallback ); // TypeError

// map/reduce; 这是更好的方案,即使传入空数组或更大数组也可正常执行
[ { x: 22 }, { x: 42 } ].map( el => el.x )
                        .reduce( maxCallback2, -Infinity );  // 负无穷作为初始值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值