数组常用的方法
// 1.0 Array.from() 方法从一个类似数组或可迭代的对象中创建一个新的数组实例。 const bar = ["a", "b", "c"]; Array.from(bar); console.log(bar); console.log(Array.from('foo')); // 2.0 concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 let arr1 = ["a", "b", "c"]; let arr2 = ["d", "e", "f"]; let arr3 = arr1.concat(arr2); console.log(arr3);// [ "a", "b", "c", "d", "e", "f" ] console.log(arr1);// ["a", "b", "c"] console.log(arr2);// ["d", "e", "f"] // every() 方法测试数组的所有元素是否都通过了指定函数的测试。 function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough);// passed is false console.log("1",passed); passed = [12, 54, 18, 130, 44].every(isBigEnough); // passed is true console.log("2",passed); // filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。 function isBigEnough(value) { return value >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); console.log('filtered',filtered);//[12,130,44] // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 let numbers = [1, 5, 10, 15]; let doubles = numbers.map((x) => { return x * 2; }); console.log("doubles",doubles); var kvArray = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}]; var reformattedArray=[]; reformattedArray = kvArray.map(obj=>{ var rObj = {}; rObj[obj.key] = obj.value; return rObj; }); console.log('reformattedArray',reformattedArray); // some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。 const isBiggerThan10 = (element, index, array) => { return element > 10; } [2, 5, 8, 1, 4].some(isBiggerThan10); // false [12, 5, 8, 1, 4].some(isBiggerThan10); // true // find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 function isBigEnough(element) { return element >= 15; } var index=[12, 5, 8, 130, 44].find(isBigEnough); // 130 console.log('index',index); // findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。 function isBigEnough(element) { return element >= 15; } var index1=[12, 5, 8, 130, 44].findIndex(isBigEnough); // 3 console.log("index1",index1); // forEach() 方法对数组的每个元素执行一次提供的函数。 let a = ['a', 'b', 'c']; a.forEach(function(element,index,array) {//currentValue(当前值),index(索引),array console.log(element); console.log(index); console.log(array); }); // includes() 方法用来判断一个数组是否包含一个指定的值,如果是,酌情返回 true或 false。 let s = [1,2,3]; console.log(s.includes(2)); // true console.log(s.includes(4)); //false // indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。 let f = [2, 9, 7, 8, 9]; f.indexOf(2); // 0 f.indexOf(6); // -1 f.indexOf(7); // 2 f.indexOf(8); // 3 f.indexOf(9); // 1 // lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。 // join() 方法将数组(或一个类数组对象)的所有元素连接到一个字符串中。 // keys() 方法返回一个新的Array迭代器,它包含数组中每个索引的键。 var arr = ["a", , "c"]; var denseKeys = [...arr.keys()]; var dd=arr.keys(); console.log(denseKeys); console.log(dd); // pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。 // push() 方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。 // shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。 // unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度。 let b = [1, 2, 3]; b.length; // 3 b.pop(); // 3 console.log(b); // reduce() 方法对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值。 var total = [0, 1, 2, 3].reduce(function(sum, value) { return sum + value; }, 0); console.log(total); // reverse() 方法将数组中元素的位置颠倒。 // slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。 var berfore=['a','b','c','d']; var sliced=berfore.slice(1,3); console.log('berfore',berfore); console.log('sliced',sliced); // sort() 方法在适当的位置对数组的元素进行排序,并返回数组。 sort 排序不一定是稳定的。默认排序顺序是根据字符串Unicode码点。 // splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。 // toString() 返回一个字符串,表示指定的数组及其元素。 // 3.0 copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,而不修改其大小。 // arr.copyWithin(目标索引, [源开始索引], [结束源索引]) console.log(["alpha", "beta", "copy", "delta"].copyWithin(1, 2, 3)); // 4.0 entries() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。 var arr = ["a", "b", "c"]; var iterator = arr.entries(); console.log(iterator); console.log(iterator.next().value);