目錄 (づ ̄ 3 ̄)づ=>
[TOC]
- ### Array.from
將一個數組或則類數組變成數組,且會復制一份
- ### Array.of
```
let arr1 = Array(3); //申請的是數組長度
console.log(arr1); //[<3 empty items>]
let arr2 = Array.of(3);
console.log(arr2); // [3]
```
- ### [].copyWithin
>[danger] 會改變原數組
copyWithin() 方法用于從數組的指定位置拷貝元素到數組的另一個指定位置中。
```
參數1:賦值到指定目標位置的索引target
參數2:源數據起始索引
參數3:源數據結束索引
console.log([1, 2, 3, 4, 5].copyWithin(0, 1, 2));
>>>[2,2,3,4,5]
```
- ### [].find/findeIndex
查找到對應的元素和索引
```
let arr = [1, 2 ,3, 3, 4, 5];
let find = arr.find((item, index, arr) => {
return item === 3;
});
let findIndex = arr.findIndex((item, index, arr) => {
return item === 3;
});
console.log(find, findIndex);
```
- ### [].map
```
//map 映射 將原有的數組映射成一個新數組 【更新】
//[1,2,3]=><li>1</li><li>2</li><li>3</li>
//不操作原數組 返回新數組 回調函數中返回什么這一項就是什么
let arr1 = [1,2,3].map((item)=>{
return `<li>${item}</li>`;
})
// console.log(arr1);
console.log(arr1.join(''));
```
- ### [].reduce
```
//1)用reduce實現數組扁平化
//[[1,2,3],[4,5,6],[7,8,9]].join(',').split(',')
let flat = [[1,2,3],[4,5,6],[7,8,9]].reduce(function(prev,next){
return prev.concat(next);
})
//2)初始值的使用場景
let sum2 = [{price:30,count:2},{price:30,count:3},{price:30,count:4}].reduce((prev,next)=>{
return prev+next.price*next.count;
},0)
console.log(sum2);
```
- ### [].filter
```
是否操作原數組:不 返回結果:過濾后的新數組 回調函數的返回結果:如果返回true 表示這一項放到新數組中 【刪除】
let newArr = [1,2,3,4,5].filter((item,index,arr)=>{
return item>2&&item<5;
//2<item<5 永遠為true 因為2<item為true/false 轉換為數字不超過1
})
```
- ### [].foreach
---
- ### [].slice
>[success] 不改變原始數組
```
let arr2 = arr1.slice(0,3);
console.log(arr2);
```
- ### some,every
```
//some 找true 找到true后停止 返回tue 找不到返回false
//every 找false 找到false后停止 返回false
let result = arr3.every((item,index,arr)=>{
return item.toString().indexOf(5)>-1; //>-1是indexOf需要,indexOf>-1表示找到了 因為indexOf返回的是匹配的字符串的起始索引
});
console.log(result); //true
```