js数组操做

1.map: map(fun())javascript

    map便是 “映射”的意思,返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值java

let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 每一个元素除以10,最后返回一个新数组newArray 
let newArray = array.map(value => value/10);   //[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]

// 语法:
arr.map(function(value,index,arr){
    // 这里能够写本身的逻辑
});

2.some: some(fun())数组

    依次执行数组的每一个元素,函数

    若是有一个元素知足条件,则表达式返回true , 剩余的元素不会再执行检测; 测试

    若是没有知足条件的元素,则返回falsespa

array.some(function(value){
  console.log(value);
});

array.some(a => a>23);     //false  (每个都小于23)
array.some(a => a>2);      //true   (第二个就大于2)

// 语法
array.some(function(currentValue,index,arr){
    // 逻辑
})

3.every: every(fun())code

    使用指定函数检测数组中的全部元素:ip

    若是数组中检测到有一个元素不知足,则整个表达式返回 false ,且剩余的元素不会再进行检测字符串

    若是全部元素都知足条件,则返回 trueit

array.every(a => a>3);        // false  (第一个就小于3)
array.every(a => a>0);        // true  (每个都大于0)

// 语法
array.every(function(currentValue,index,arr){
    // 逻辑
})

4.filter: filter(fun())

    建立一个新的数组,新数组中的元素是经过检查指定数组中符合条件的全部元素

array.filter(a => a%2==0);   // 返回一个新的偶数数组 [2, 4, 6, 8, 10]

// 语法
array.filter(function(currentValue,index,arr){
    // 逻辑
})

5.reduce: 

    接收一个函数做为累加器,数组中的每一个值(从左到右)开始缩减,最终计算为一个值

    能够做为一个高阶函数,用于函数的 compose

array.reduce((a,b)=> a+b);   // 结果为数组全部元素的何:55

// 语法
reduce((total,currentValue, index,arr) => total + currentValue);
// total: 必需。初始值, 或者计算结束后的返回值
// currentValue: 必需。当前元素

6.concat: 链接两个或多个数组

    该方法不会改变现有的数组,而仅仅会返回被链接数组的一个副本

    这里须要注意:  concat() 操做的参数是数组,可是添加到newA中的书数组中的元素,而不是数组,结果以下:

let a1 = ["a","b"];
let a2 = ["c","d"];
let a3 = ["e","f"];
let newA = a1.concat(a2,a3);
//  newA: ["a", "b", "c", "d", "e", "f"]

// 可简写成
let newB = [...a1,...a2,...a3,"k"]
// newB: ["a", "b", "c", "d", "e", "f","k"],数组的位置能够任意更换

7.slice:   array.slice(start, end); 

    从已有的数组中返回选定的元素; 包含从 [start,end)的 arrayObject 中的元素,其中start可为负,表示从倒数开始(字符串一样适用)

array.slice();        // 至关于复制,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 可简写
let array1 = [...arr];

array.slice(5);       // 第5个开始到末尾:[6, 7, 8, 9, 10]
array.slice(-2);       // 倒数第2个开始到末尾:[9, 10]
array.slice(1,3);     //array.slice(1,3);

8.splice: 

   方法用于插入、删除或替换数组的元素

    注意:这种方法会改变原始数组!

array.splice(index,howmany,item1,.....,itemX)
// index: 	必需。规定从何处添加/删除元素; 该参数是开始插入和(或)删除的数组元素的下标,必须是数字
// howmany: 必需。规定应该删除多少元素。必须是数字,但能够是 "0"; 若是未规定此参数,则删除从 index 开始到原数组结尾的全部元素
// item1, ..., itemX: 可选。要添加到数组的新元素

let array5 = array.splice(2,4);    
// 从第3个开始,删除4个,array: [1, 2, 7, 8, 9, 10] 返回被删的元素数组array5:[3, 4, 5, 6]

array = [1, 2, 3];
array.splice(2,1,99); //将第三个值改成99  array:[1, 2, 99]
array = [1, 2, 3];
array.splice(2,0,88); //给第三个位置加个值88  array:[1, 2, 88, 3]

  9. find: 返回经过测试(函数内判断)的数组的第一个元素的值

    数组中的每一个元素都调用一次函数执行:

    当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,以后的值不会再调用执行函数
    若是没有符合条件的元素返回 undefined

let personList = [
  { name: '张三', sex: '1'},
  { name: '李四', sex: '2'},
  { name: '王五', sex: '2'},
]
personList.find(person => person.name ==='李四' && person.sex === '2');
// {name: "李四", sex: "2"}
相关文章
相关标签/搜索