数组中涉及的常见需求问题

找两个数组的交集

 var arr1 = [3, 2, 1];
 var arr2 = [
     { name: 'name1', id: 1 },
     { name: 'name2', id: 2 },
     { name: 'name3', id: 3 },
     { name: 'name4', id: 4 },
     { name: 'name5', id: 5 },
 ];
 var result = arr2.filter(function (v) {
     return arr1.indexOf(v.id) != -1; // 利用filter方法来遍历是否有相同的元素   可以根据等于-1   或者不等于-1 来获取相同或者不同的元素
 });
 console.log(result);

一个数组根据领一个数组排序

var list = [
    { name: 'name1', id: 1 },
    { name: 'name2', id: 2 },
    { name: 'name3', id: 3 },
    { name: 'name4', id: 4 },
];
list.sort((a, b) => {
    let order = [3, 2, 4, 1];
    return order.indexOf(a.id) - order.indexOf(b.id);
});
console.log(list);

数组去重

//去重
 reduceRepeat(arr) {
     let outRightlist = [];
     let innerRightlist = {};
     arr.forEach((item, index) => {
         if (!innerRightlist[item.id]) {
             outRightlist.push(item);
             innerRightlist[item.id] = true;
         }
     });
     return outRightlist;
 },

数组对象里的某个键值对的value在数组里不能重复

isRepeat(arr, key) {
    //有重复返回false 没有重复返回obj
    var obj = {};
    for (let i = 0; i < arr.length; i++) {
        if (obj[arr[i][key]]) {
            return false;
        } else {
            obj[arr[i][key]] = arr[i];
        }
    }
    return obj;
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值