注:不改变原数组,返回一个新的字符串
let array = ['I', 'am', 'shan', 'er'];
array.join(); //"I,am,shan,er" 默认以逗号分隔;
array.join(' '); //"I am shan er"
array.join('-'); //"I-am-shan-er"
注:改变原数组
let array = ['I', 'am', 'shan', 'er'];
array.push('so?'); // array: ["I", "am", "shan", "er", "so?"]
array.pop(); // array: ['I', 'am', 'shan', 'er']
注:改变原数组
let array = ['I', 'am', 'shan', 'er'];
array.unshift('Hi'); // array: ["Hi", "I", "am", "shan", "er"]
array.shift(); // array: ['I', 'am', 'shan', 'er']
注:改变原数组
let array = ['I', 'am', 'shan', 'er'];
array.reverse(); // array: ["er", "shan", "am", "I"]
注:改变原数组
let array = ['I', 'am', 'shan', 'er'];
array.sort(); // array: ["I", "am", "er", "shan"] 默认按照字母顺序(Ascall编码)排序
array.sort((a, b) => { return b.length - a.length; }); //["shan", "am", "er", "I"]
注:不改变原数组,返回一个新数组
let array = ['I', 'am', 'shan', 'er'];
let array2 = ['How', 'are', 'you'];
array.concat(array2); // array: ["I", "am", "shan", "er", "How", "are", "you"]
注:不改变原数组,返回一个新数组
let array = ['I', 'am', 'shan', 'er'];
array.slice(0, 3); // ["I", "am", "shan"]
注:改变原数组
let array = ['I', 'am', 'shan', 'er'];
array.splice(0, 1); // ["am", "shan", "er"] 第一个参数索引,第二个参数删除个数
array.splice(0, 0, 'I'); //["I", "am", "shan", "er"] 第三个参数插入
注:不改变原数组,返回一个字符串
let array = ['I', 'am', 'shan', 'er'];
array.toString(); // "I,am,shan,er"
array.toLocaleString(); // "I,am,shan,er"
注:不改变原数组,返回索引
let array = ['I', 'am', 'shan', 'er'];
array.indexOf('am'); // 1(-1时表示查找不到)
array.lastIndexOf('am'); // 1
let array = ['I', 'am', 'shan', 'er'];
array.forEach(item => console.log(item));
注:不改变原数组,返回一个新数组
let array = ['I', 'am', 'shan', 'er'];
array.map(item => { return 'new';}); // ["new", "new", "new", "new"]
注:不改变原数组,返回一个新数组
let array = ['I', 'am', 'shan', 'er'];
array.filter(item => { return item != 'shan';}); // ["I", "am", "er"]
注:不改变原数组,返回布尔值/font>
let array = ['I', 'am', 'shan', 'er'];
array.some(item => { return ~item.indexOf('shan');}); // true
array.some(item => { return ~item.indexOf('shaner');}); // false
注:不改变原数组,返回布尔值/font>
let array = ['I', 'am', 'shan', 'er'];
array.every(item => { return item <= 'shan';}); // true
array.every(item => { return item < 'shan';}); // false
注:不改变原数组/font>
let array = ['I', 'am', 'shan', 'er'];
array.reduce((prev, cur, index, array) => {return `${prev},${cur}`}); //"I,am,shan,er"
array.reduceRight((prev, cur, index, array) => {return `${cur},${prev}`});//"I,am,shan,er"
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
Array.of() // []
Array.of(undefined) // [undefined]
Array.of(1) // [1]
Array.of(1, 2) // [1, 2]
target(必需):从该位置开始替换数据。如果为负值,表示倒数。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
注:改变原数组/font>
// 将3号位复制到0号位
[1, 2, 3, 4, 5].copyWithin(0, 3,4); // [4, 2, 3, 4, 5]
// -2相当于3号位,-1相当于4号位
[1, 2, 3, 4, 5].copyWithin(0, -2, -1); // [4, 2, 3, 4, 5]
// 将3号位复制到0号位
[].copyWithin.call({length: 5, 3: 1}, 0, 3); // {0: 1, 3: 1, length: 5}
[1, 4, -5, 10, -4].find((n) => n < 0); // -5
[1, 5, 10, 15].findIndex((value, index, arr) => {
return value > 9;
}); // 2
注:改变原数组/font>
let array = ['I', 'am', 'shan', 'er'];
array.fill('new'); // ["new", "new", "new", "new"]
for (let index of array.keys()) {
console.log(index);
}
for (let index of array.entries()) {
console.log(index);
}
// 输出
[0, "I"]
[1, "am"]
[2, "shan"]
[3, "er"]
for (let index of array.values()) {
console.log(index);
}
let array = ['I', 'am', 'shan', 'er'];
array.includes('am'); // true
注:不改变原数组
let array=[1, 2, [3, [4, 5]]];
array.flat(2); // [1, 2, 3, 4, 5]
注:不改变原数组
// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2]); // [2, 4, 3, 6, 4, 8]
// 相当于 [[[2]], [[4]], [[6]], [[8]]].flat()
[1, 2, 3, 4].flatMap(x => [[x * 2]]); // [[2], [4], [6], [8]]