Javascript 删除对象中的重复元素并保留唯一元素
我有两个目标: obj1Javascript 删除对象中的重复元素并保留唯一元素,javascript,object,lodash,Javascript,Object,Lodash,我有两个目标: obj1 { "uuid": "", "open_bal_qty": 0, "open_bal_value": 0, "qty_min": 0, "qty_med": 0, "qty_max": 0, "kedai_uuid": "198ceaef-4ced-4207-9ba0-62afbb42bb85" } obj2 { "uuid": "", "open_bal_qty": 0, "open_bal_value": 0, "ked
{
"uuid": "",
"open_bal_qty": 0,
"open_bal_value": 0,
"qty_min": 0,
"qty_med": 0,
"qty_max": 0,
"kedai_uuid": "198ceaef-4ced-4207-9ba0-62afbb42bb85"
}
obj2
{
"uuid": "",
"open_bal_qty": 0,
"open_bal_value": 0,
"kedai_uuid": "198ceaef-4ced-4207-9ba0-62afbb42bb85"
}
如何删除不存在于obj2
中的复制和获取元素,以便我的新obj将是:
newObj
{
"qty_min": 0,
"qty_med": 0,
"qty_max": 0,
}
我可以使用lodashpick
,但我不想手动输入要筛选的密钥名
const newObj = pick(obj1, [
'qty_min',
'qty_med',
'qty_max',
]);
提前感谢。您可以通过查找两个对象关键点之间的差异并拾取这些关键点,将
与一起使用
const obj1={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“最小数量”:0,
“数量”:0,
“最大数量”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
};
常数obj2={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
};
常量obj1Keys=u0.keys(obj1)//或对象键
常量obj2Keys=u0.keys(obj2);
console.log(j1;.pick(obj1Keys>obj2Keys?obj1:obj2,j1.difference(obj1Keys,obj2Keys)))
您可以通过查找两个对象关键点之间的差异并拾取这些关键点,将与一起使用
const obj1={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“最小数量”:0,
“数量”:0,
“最大数量”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
};
常数obj2={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
};
常量obj1Keys=u0.keys(obj1)//或对象键
常量obj2Keys=u0.keys(obj2);
console.log(j1;.pick(obj1Keys>obj2Keys?obj1:obj2,j1.difference(obj1Keys,obj2Keys)))
使用for..in
迭代对象,并使用对象.hasOwnProperty
检查第二个对象是否具有相同的键
var obj1={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“最小数量”:0,
“数量”:0,
“最大数量”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
}
变量obj2={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
}
var newObj={};
用于(obj1中的var键){
如果(!obj2.hasOwnProperty(键)){
newObj[keys]=obj1[keys]
}
}
console.log(newObj)
使用for..in
迭代对象,并使用对象.hasOwnProperty
检查第二个对象是否具有相同的键
var obj1={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“最小数量”:0,
“数量”:0,
“最大数量”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
}
变量obj2={
“uuid”:“,
“未结余额数量”:0,
“未清余额”:0,
“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”
}
var newObj={};
用于(obj1中的var键){
如果(!obj2.hasOwnProperty(键)){
newObj[keys]=obj1[keys]
}
}
console.log(newObj)
使用lodash,您可以从obj1
所有obj2
:
const obj1={“uuid”:“未清余额数量”:0,“未清余额价值”:0,“最小数量”:0,“最大数量”:0,“最大数量”:0,“kedai uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”;
const obj2={“uuid”:“,”未清余额数量:0,“未清余额”值:0,“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”};
const newObj=uj.omit(obj1,j.keys(obj2));
console.log(newObj)代码>
使用lodash,您可以从obj1
所有obj2
:
const obj1={“uuid”:“未清余额数量”:0,“未清余额价值”:0,“最小数量”:0,“最大数量”:0,“最大数量”:0,“kedai uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”;
const obj2={“uuid”:“,”未清余额数量:0,“未清余额”值:0,“kedai_uuid”:“198ceaef-4ced-4207-9ba0-62afbb42bb85”};
const newObj=uj.omit(obj1,j.keys(obj2));
console.log(newObj)代码>
您可以在两个对象的键上使用差异(数组,[value])
,并在拾取函数中使用。您可以在两个对象的键上使用差异(数组,[value])
,在拾取函数中使用它。小心…如果obj2具有唯一属性则不起作用小心…如果obj2具有唯一属性则不起作用