数组相关知识
key in obj/arr
for in 循环数组会将数组中的非整数键也一起循环,所以不建议用他循环数组
使用delete arr[index] 删除数组中某元素, 元素删除成功,但是其位置保留形成空位,也就是说数组长度不变
使用forEach、for in、Object.keys()循环数组会跳过空位
1、es6 arr.flat(num)
pop、push、shift、unshift、reverse、splice、sort
slice: arr.slice(start, end) 返回一个新数组不改变原数组
start: 为起始位置index包含在内
end: 为结束位置index不包含在内
slice不传参数返回原函数,start、end可为负数-1倒数第一个,以此类推
splice: 方法用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素。该方法会改变原数组
arr.splice(start, count, addElement1, addElement2, ...)
splice的第一个参数是删除的起始位置(从0开始)可为负数,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。
count为负数则返回[]
其它
Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })
Array.prototype.join.call('hello', '-')
var obj = { 0: 'a', 1: 'b', length: 2 };
Array.prototype.join.call(obj, '-')