#3 javascript算法3

1.将2个数组对象中存在相同属性的项出去

# 将 'Num' 值不同的提取出来,想得到结果 [ {"Num": "C " ,"Name": "t3 "} ]
var array1 = [ {"Num": "A "  },{"Num": "B" }];
var array2 = [ {"Num": "A ","Name": "t1 " }, {"Num": "B","Name": "t2"}, {"Num": "C " ,"Name": "t3 "}];
var result = [];
for(var i = 0; i < array2.length; i++){
    var obj = array2[i];
    var num = obj['Num'];
    var isExist = false;
    for(var j = 0; j < array1.length; j++){
        var aj = array1[j];
        var n = aj['Num'];
        if(n == num){
            isExist = true;
            break;
        }
    }
    if(!isExist){
        result.push(obj);
    }
}
console.log(result);
// {"Num": "C " ,"Name": "t3 "}];

使用 lodash 提供的函数 _,remove , _.find

// 将数组arr1和arr2中 ' name="james" '的去除
var arr1 = [
  {name: 'james', age: 12, id: 1},
  {name: 'james', age: 13, id: 2},
  {name: 'tom', age: 14, id: 3},
  {name: 'harry', age: 14, id: 10}
]

var arr2 = [
  {name: 'james', age: 16, id: 4},
  {name: 'louis', age: 13, id: 5},
  {name: 'jimmy', age: 14, id: 3}
]
// _.remove 不是纯函数 会改变数组
_.remove(arr1, function(item1) {
  return _.find(arr2, function(item2) {
    return item1.name === item2.name;
  });
})
console.log(arr1)
[
  { name: 'tom', age: 14, id: 3 },
  { name: 'harry', age: 14, id: 10 }
]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,764评论 18 399
  • 一天早上,在小区电梯里碰到楼上的爷爷,他说在宝安见到莫姐,莫姐还向他打听我家小朗有没有长高、有没有长胖。。。 莫姐...
    小树洞君阅读 783评论 0 2
  • 1.TrustZone和TrustFirmware关系:ARM机制和具体实现的关系 2.虚拟地址和物理地址 3.i...
    欢仔_159a阅读 965评论 0 0