首页 > 编程语言 > 详细

JS 数组操作总结

时间:2019-12-26 17:21:49      阅读:64      评论:0      收藏:0      [点我收藏+]

1. 根据条件查找数组项

  • every - 数组中的所有元素是否符合回调函数中的指定条件;返回值为true/false
    const a = [1, 3, 5, 6];
    function calbackFunc(item) {
        return item%2==0;
    }
    a.every(calbackFunc);
    // 输出: false;
  • some - 与every不同的是,只要有一个元素满足条件,就返回true;;返回值为true/false
     const a = [1, 3, 5, 6];
    function calbackFunc(item) {
        return item%2==0;
    }
    a.some(calbackFunc);
    // 输出:true;
  • filter - 创建一个新数组;新数组是由符合回调函数中的指定条件的旧数组项组成;返回值是由旧数组项组成的;
    const a = [{a: 1, b: 2, c: 3}];
    funcion calbackFunc(item) {
        return item>=2;
    }
    a.filter(calbackFunc);
    // 输出: [{b:2}, {c: 3}]; 若都不符合条件则返回空数组
  • each - 循环遍历操作数组
    const a = [{a: 1}, {b: 2}, {c: 3}];
    funcion calbackFunc(item) {
        item['d'] = 4;
    }
    a.each(calbackFunc);
    // 输出: [{b:2}, {c: 3}]; 若都不符合条件则返回空数组
  • map - 映射一个新数组,和原数组无关联,新数组的每个元素都是调用callback函数后返回的结果。注意:如果没有return值,则新数组会插入一个undefined值。map并不具有过滤功能,只是操作旧数组生成一个和元素组一样长度的新数组;
    const a = [{name: 'aa'}, {name: 'bb'}, {name: 'cc'}];
    const b = [{name: 'aa'}, {age: 'bb'}];

    const narray1 = a.map(item=>item.name+'11');
    const narray2 = b.map(item=>item.name+'11');

    // narray1 => ['aa11', 'bb11', 'cc11']
    // narray2 => ['aa11', 'undefined11']
    // a => [{name: 'aa'}, {name: 'bb'}, {name: 'cc'}]
    // b =>  [{name: 'aa'}, {age: 'bb'}]
  • slice - 返回一个新数组,数组是由旧数组从begin到end(不包含end)的数组项组成
    const a = [{a: 1}, {b: 2}, {c: 3}];

    a.slice(1,2); // 输出 [{b: 2}]

2. 操作数据

  • join - 将数组项以某个字符(默认为,)连接起来,返回一个字符串
    const a = ['a', 'b', 'c'];
    a.join('-');
    // 输出 ‘a-b-c’
  • push - 讲一个或多个元素添加到数组的末尾; unshift - 将一个或多个元素添加到数组的开头
    const a = [1, 2, 3];
    const b = ['a'];
    
    a.push(...b); // 输出: [1, 2, 3, 'a']
    a.unshift(...b); // 输出: ['a', 1, 2, 3]
  • pop - 删除数组最后一项,并且返回删除的值; shift - 删除数组中第一项的值,并返回删除的值;
    const a  = [1, 2, 3];
    
    a.pop(); // 3
    a.shift(); // 1
  • splice - 删除数组项或往数组中添加项 (startIndex, num, addItem); startIndex指定修改数组的起始位置;num删除个数;addItem添加的元素(添加到起始位置的前面)
const a= ['aa', 'bb', 'cc', 'dd'];
 
const deleted =a.splice(2, 0, 'qq'); // 删除0位,在索引为2的位置前方插入'qq'元素
// a变为 ["aa", "bb", "qq", "cc", "dd"],deleted为[]

const deleted = a.splice(2, 1); 
// a变为['aa', 'bb', 'dd'], deleted为['cc']

JS 数组操作总结

原文:https://www.cnblogs.com/zero-zm/p/12102776.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!