gpt4 book ai didi

javascript - 将对象与数组进行比较

转载 作者:行者123 更新时间:2023-11-30 08:27:38 24 4
gpt4 key购买 nike

我有一个对象和数组,如下所示,我想删除对象的所有属性,数组中列出的属性除外。谁能帮我用一个好的 lodash 函数来做到这一点。

object : {A:1,B:2,C:3,D:4} 
array: [{type:B,value:xyz,order:1},{type:D,value:abc,order:0}]

I want the object to be {B:2,D:4} after the operation

最佳答案

使用_.pick像这样:

var result = _.pick(object, array);

var object = {
A: 1,
B: 2,
C: 3,
D: 4
};

var array = ["B", "D"];

var result = _.pick(object, array);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

编辑:

您应该首先使用 _.map获取 key ,然后像这样使用 _.pick:

var result = _.pick(object, _.map(array, function(e) {
return e.type;
}));

或者像这样使用箭头函数:

var result = _.pick(object, _.map(array, e => e.type));

或者像这样使用 iteratee 参数甚至更短:

var result = _.pick(object, _.map(array, "type"));

var object = {
A: 1,
B: 2,
C: 3,
D: 4
};

var array = [{type: "B", value: "xyz", order: 1}, {type: "D", value: "abc", order: 0}];

var result = _.pick(object, _.map(array, "type"));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - 将对象与数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com