var arrayLike = { '0': 'a', '1': 'b', '2': 'c', 'length': 3 } var arr1 = [].slice.call(arrayLike); console.log(arr1); //['a','b','c'] var arr2 = Array.from(arrayLike); console.log(arr2); //['a','b','c'] var arr3 = Array.from('hello'); console.log(arr3); //["h", "e", "l", "l", "o"] let nameSet = new Set(['a','b','c','a']) console.log(nameSet); //{"a", "b", "c"} var arr4 = Array.from(nameSet); console.log(arr4); //["a", "b", "c"] function foo(){ var arr = Array.from(...arguments) console.log(arr); } foo([1,2,3,4,5,6]) //[1, 2, 3, 4, 5, 6] var arr5 = Array.from({length: 3}); console.log(arr5); //[undefined, undefined, undefined] const toArray = (() => Array.from? Array.from: obj => [].slice.call(obj) // obj => [].slice.call(obj) )() Array.from([1,2,3], x=>x*x); Array.from([1,2,3]).map(x=>x*x); Array.from([1,2,3], (x)=>x*x); //-----------Array.of console.log(Array.of(1,2,3)); //[1,2,3] console.log(Array.of(3)); //[3] console.log(Array.of(3).length); //1 console.log(Array.of()); //[] //copyWithin var cw = [1,2,3,4,5,6,7,8,9].copyWithin(0, 5); //[6,7,8,9,5,6,7,8,9] console.log(cw); var cw = [1,2,3,4,5,6,7,8,9].copyWithin(0,5,6); //[6,2,3,4,5,6,7,8,9] console.log(cw); var cw = [1,2,3,4,5,6,7,8,9].copyWithin(1,5,6); //[1,6,3,4,5,6,7,8,9] console.log(cw); //find() findIndex() var arr6 = [1,2,3,4,5,6,7,8,9].find((n) => n > 3) console.log(arr6); //4 var arr7 = [1,2,3,4,5,6,7,8,9].find(function(n){ return n > 5; }); console.log(arr7); //6 //返回第一个匹配的值 //findIndex返回第一个匹配的值的位置 //fill var arr8 = ['a','b','c'].fill(7) console.log(arr8); //[8,8,8] var arr9 = [1,2,3,4,5,6,7,8,9].fill('aa' , 2,4); console.log(arr9); //[1,2,'aa','aa',5,6,7,8,9] //entries keys values for(let key of ['a','b','c'].keys()){ console.log(key); } //0,1,2 for(let value of ['a','b','c'].values()){ console.log(value); } //a,b,c for(let entry of ['a','b','c'].entries()){ console.log(entry); } //[0, 'a'][1, 'b'][2, 'c'] //数组includes console.log([1,2,3].includes[2]); //true console.log([1,2,3].includes[4]); //false //空数组 console.log(Array(3)) //[undefined × 3] //书上说返回[,,,]但是我确返回了[undefined × 3] console.log(0 in [undefined,undefined,undefined]) //true console.log(0 in [,,,]); //false //数组推导 var a1 = [1,2,3,4]; //var a2 = [for(n of a1)n*2] 报错了了 //console.log(a2);