array1.sort();
console.log(array1);
// [1, 100000, 21, 30, 4]
fill()
用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
const arr = [1, 2, 3, 4];
console.log(arr.fill(0, 2, 4));
//[1, 2, 0, 0]
console.log(arr.fill(5, 1));
// [1, 5, 5, 5]
console.log(array1.fill(6));
// [6, 6, 6, 6] //无beigin 和 end 则全部填充
无副作用 (不改变原数组)
=============
concat()
用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
const array1 = [‘a’, ‘b’, ‘c’];
const array2 = [‘d’, ‘e’, ‘f’];
const array3 = array1.concat(array2);
console.log(array3);
// [“a”, “b”, “c”, “d”, “e”, “f”]
join()
该方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
const elements = [‘1’, ‘2’, ‘3’];
console.log(elements.join());
// “1,2,3”
console.log(elements.join(‘’));
//“123”
console.log(elements.join(‘-’));
//“1-2-3”
indexOf() , lastIndexOf()
indexOf 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
lastIndexOf 返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找。
//indexOf
const arr = [‘1’, ‘2’, ‘3’];
console.log(arr.indexOf(‘2’));
// 1
console.log(arr.indexOf(‘0’));
//-1
//lastIndexOf
const arr = [‘1’, ‘2’, ‘3’, ‘1’];
console.log(arr.lastIndexOf(‘1’));
// 3
console.log(arr.lastIndexOf(‘2’));
// 1
slice()
返回截取后的新数组,截取数组中的一部分,从开始到结束,截取原则是,包括开始索引不包括结束索引值.
第二个参数可选:不写或大于数组的 length,取将从开始索引到最后一个参数
let a=[1,2,3,4,5]
let b=a.slice(1,2)
b //2
let a=[1,2,3,4,5]
let b=a.slice(1,1)
b //undefined
let a=[1,2,3,4,5]
let b=a.slice(1)
b //[2, 3, 4, 5]
entries()
返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
const array1 = [‘a’, ‘b’, ‘c’];
const iterator1 = array1.entries();
console.log(iterator1.next().value);
// [0, “a”]
console.log(iterator1.next().value);
// [1, “b”]
keys()
返回一个包含数组中每个索引的Array Iterator对象。
const arr = [‘a’, ‘b’, ‘c’];
const iterator = arr.keys();
for (const key of iterator) {
console.log(key);
}
// 0
// 1
// 2
values()
返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值
const array1 = [‘a’, ‘b’, ‘c’];
const iterator = array1.values();
for (const value of iterator) {
console.log(value);
}
// “a”
// “b”
// “c”
every()
测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
若收到一个空数组,此方法在一切情况下都会返回 true。
const check = (currentValue) => currentValue < 40;
const arr = [1, 30, 39, 29, 10, 13];
console.log(arr.every(check));
// true 数组元素都<40
filter()
创建一个新数组, 返回符合条件的元素。
const arr = [1, 2, 3];
const result = arr.filter(item => item > 1);//过滤方法,条件 值长度>6
console.log(result);
// [2, 3]
forEach()
对数组的每个元素执行一次给定的函数,但传入的回调里是可以更改原数组的。当然不推荐这样做。
const array1 = [{a:100}];
array1.forEach(element =>{
element.a=200 //不推荐,此处应该是一个纯函数
});
console.log(array1)
// [Object { a: 200 }]
includes()
用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
onst array1 = [1, 2, 3];
console.log(array1.includes(2));
// true
some()
检测数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean。
const array = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0; //是否能整除2
console.log(array.some(even));
// true
reducer()
相当于一个累加器,第一个参数表示上一次累计的返回值,第二个参数表示当前元素值
const arr = [1, 2, 3, 4];
const reducer = (sum, currentValue) => sum + currentValue;
console.log(arr.reduce(reducer));
// 10
console.log(arr.reduce(reducer, 5));
// 15
map()
返回一个新数组,新数组的结果是旧数组中的每个元素是调用一次提供的函数后的返回值。
let a=[1,2,3,4,5]
let b=a.map(item=>item*2)
a //[1, 2, 3, 3, 5]
b //[2, 4, 6, 8, 10]
find() , findIndex()
find: 返回数组中满足提供的过滤函数的第一个元素的值。否则返回 undefined。
findIndex: 和find方法功能一致,但返回的是元素的索引
//find
const arr = [5, 12, 8, 130, 44];
const found = arr.find(item => item > 10);
console.log(found);
//12
//findIndex
const arr = [5, 12, 8, 130, 44];
const found = arr.findIndex(item => item > 10);
console.log(found);
//1
flat()
返回一个扁平化的新数组,接收一个数组(这个数组中的某些item本身也是一个数组),返回一个新的一维数组(如果没有特别指定depth参数的话返回一维数组)。
const arr = [ “a”, [“b”, “c”], [“d”, [“e”, “f”]]];
// .flat() 接收一个可选的深度参数