gpt4 book ai didi

javascript - 获取对象中不包含在数组中的一个元素

转载 作者:行者123 更新时间:2023-12-02 16:15:08 25 4
gpt4 key购买 nike

我想返回对象的一个元素,该元素不包含在数组中

例如,我有以下数组:

var aArray = [{ABC: { BADGE: "ABC" }}, {BCA: { BADGE: "BCA"}}]

以及以下对象:

var oObject = {
A: {
ABC: "ABC",
BCA: "BCA"
},
B: {
BCA: "BCA",
AAA: "AAA"
}
}

所以我期望获得 AAA

目前我正在努力处理以下代码:

for(var j = 0; j < aArray.length; j++) {
bNotFound = true;

for(var biz in oObject) {
for(var badge in oObject[biz]) {
if(badge == aArray[j].BADGE) {
bNotFound == false;
}
}
}

if(bNotFound) {
// Return Badge
}
}

这可行 - 但我不知道在//Return Badge 位置返回哪个元素,因为我只知道没有找到任何元素。

有什么建议吗?

更新:

期望的输出:

{AAA: "AAA"}

最佳答案

抱歉,误解了您的问题。您需要反转循环:首先循环对象,然后循环数组。然后,如果在数组中找不到徽章,您可以返回徽章。

function findBadge() {
for(var biz in oObject) {
for(var badge in oObject[biz]) {
var found = false;
for(var j = 0; j < aArray.length; j++) {
if(badge == aArray[j].BADGE) {
// found it in the array
found = true;
break;
}
}
if (!found) {
return badge;
}
}
}

// no badge was found that is not in the array
return null;
}

不过我建议您重新考虑您的数据结构。我不知道它们应该代表什么,但对于手头的任务来说它们似乎过于复杂。例如。数组可以简单地是 ["ABC", "BCA"] 并且你可以使用 Array#indexOf搜索徽章。

关于javascript - 获取对象中不包含在数组中的一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700409/

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