目录 (づ ̄ 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
```