Array.of()
数组构造器,和Array()差别在于对于整数参数的不同处理
Array.of(3) //[3]
Array.of(1,2,3) //[1,2,3]
//差异
Array(3) //[ , , ] 三个空元素 empty slots
Array(1,2,3) //[1,2,3]
concat() 无破坏性
拼接两个数组,对原数组和参数没有影响
var a = [1,2,3],b=[4,5,6],c=[ [66] ]
a.concat(b) // Array [ 1, 2, 3, 4, 5, 6 ]
b.concat(a) // Array [ 4, 5, 6, 1, 2, 3 ]
a.concat(c) // Array [ 1, 2, 3, [66] ]
特殊情况,两个数组含有相同元素
var a=[1,2,3],b=[2,3,4]
a.concat(b) // Array [ 1, 2, 3, 2, 3, 4 ] 并不会合并
entries()
获取一个数组的迭代器,重点注意 一旦使用,指针位置便会发生偏移,直到末尾
var arr = ["a", "b", "c"];
var temp = arr.entries() // Array Iterator { }
for (let e of temp) {
console.log(e);
}
Array [ 0, "a" ]
Array [ 1, "b" ]
Array [ 2, "c" ]
every(callback,[thisArg])
对数组中每个元素执行一遍检查,直到某个callback返回false(后续不执行)或者全部通过
[5,6,7,8,9].every( t=> { console.log(t);return t > 4} ) // 5,6,7,8,9,true
[5,6,7,8,9].every( t=> { console.log(t);return t < 6 } ) // 5,6,false
fill(value, start, end) 破坏性
使用value值填充数组,start默认0(闭区间),end默认this.length(开区间)(中间那几个宫女没 峰度 啊,来,全换成柳岩)
var arr = [1, 2, 3,4,5,6,7]
arr.fill('*', 1, 3) // Array [ 1, "*", "*", 4, 5, 6, 7 ]
filter(callback,tisArg)
返回由通过检查的元素组成的新数组(嗯哼,给郑把 36D 的妃子们送过来)
var arr = [1, 2, 3,4,5,6,7]
arr.filter(t=> t > 4) // Array [ 5, 6, 7 ]
find(callback,thisArg),findIndex(callback,thisArg)
返回符合callback函数的第一个元素,callback(value,.index,.array) (李公公,给郑找一个 前凸后翘 的嫔妃,把牌子带上(索引))
var arr = [1, 2, 3,4,5,6,7]
arr.find(t => t > 4) // 5
arr.findIndex(t => t>4) // 4
forEach(callback,thisArg)
后宫佳丽三千,挨个临幸,根本停不下来,除非精尽人亡(抛异常),但这就不好玩啦
.......自行脑补,好累
includes()
老板,你们这有9号技师吗?
var arr = [1,2,3,4,5]
arr.includes(9) // false,没有!艹,开什么店
indexOf(),lastIndexOf()
老板,刚刚那个长腿MM是几号技师?
var arr = [1,2,3,4,5]
arr.indexOf(3) // 2,2号技师
arr.indexOf(6) //-1 ,抱歉,那是老板娘,无法服务
join()
老板,包场了,给我用小皮鞭绑一起
var arr = [1,2,3,4,5]
arr.join('--小皮鞭--') // "1--小皮鞭--2--小皮鞭--3--小皮鞭--4--小皮鞭--5"
keys()
返回一个迭代器,就像是《爱情呼叫转移》的那个手机,按一下(.next())下一个
let arr = ["a", "b", "c"]
let iterator = arr.keys();
// undefined
console.log(iterator);
// Array Iterator {}
console.log(iterator.next());
// Object {value: 0, done: false}
console.log(iterator.next());
// Object {value: 1, done: false}
console.log(iterator.next());
// Object {value: 2, done: false}
console.log(iterator.next());
// Object {value: undefined, done: true}
map(callback)
返回一个由callback遍历处理后组成的新数组
let arr= [1, 2,3,4];
let arr2= arr.map( t => t ** 2); //Array [ 1, 4, 9, 16 ]
shift()
删除数组第一个元素,并返回它
pop()
删除数组最后一个元素,并返回它
push()
将一个或多个元素添加到数组的末尾,并返回新数组的长度
reverse()
反转
slice(begin,end) [begin,end)
浅拷贝数组中指定位置之前的元素到一个新数组,原数组不被破坏
var arr = [0,1,2,3,4,5];
var arr2 = arr.slice(1,3) // Array [ 1, 2 ]
some()
跟every()相比,every碰到false就停并返回false,some()则是找到一个“真”就返回