gpt4 book ai didi

javascript - 获取两个对象的匹配值

转载 作者:行者123 更新时间:2023-12-02 20:53:50 24 4
gpt4 key购买 nike

我有一个对象inboundTransfer,其中包含未知数量的键。我想从 itemNumbersList 属性中获取与数组 Object.keys(selectedItems) 上的值匹配的所有值。我收到的数据看起来有点像这样:

const selectedItems = {
'nameX': {
propert1: 'value1',
property2: 'value2,
...
}
},
'nameY': {
...
},
'nameT': {
...
}

const inboundTransfers = {
0: {
property1: 'value1',
itemNumbersList: ['nameX', 'nameY', 'nameZ'],
},
1: {
property2: 'value2',
itemNumbersList: ['nameK', 'nameJ', 'nameT']
},
...
}

const isOnTransferlist = Object.keys(inboundTransfers)
.map((transfer) => Object.values(inboundTransfers[transfer].itemNumbersList)
.some((item) => Object.keys(selectedItems)
.indexOf(item) >= 0));

显然,我目前只检查该值是否在两个列表中。理想情况下,我想获得值(value)本身。我怎样才能做到这一点?我尝试使用 .filter 而不是 map 但没有成功。非常感谢任何帮助!

最佳答案

我实现了这个功能并测试了它,效果很好。

 function match() {
const selectedItems = {
a: "a1",
b: "b1",
};
const inboundTransfers = {
0: {
items: ["a", "b"],
},
1: {
items: ["c", "b"],
},
};

const capturedValues = []; // founded items store

[...Object.keys(selectedItems)].forEach((arrKey) => {
for (let [key, items] of Object.entries(inboundTransfers)) {
Object.values(items).forEach((item) => {
item.forEach((i) => {
if (i === arrKey) {
capturedValues.push(i);
}
});
});
}
});
// Remove redundant values
console.log([...new Set(capturedValues)]);
}

关于javascript - 获取两个对象的匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61538415/

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