gpt4 book ai didi

javascript - 无法在循环中更新 json 值

转载 作者:行者123 更新时间:2023-12-03 20:23:02 25 4
gpt4 key购买 nike

我正在编写一个 js 代码,其中我需要根据另一个 JSON 的条件更新 1 个 JSON。这是我的代码。

var a = [{
"a": "Not Started"
}, {
"b": "Not Started"
}, {
"c": "Not Started"
}, {
"d": "Not Started"
}, {
"e": "Not Started"
}];

var b = [{
"Id": 1,
"Stage": "c"
}];

a.forEach((obj) => {
for (const [key, value] of Object.entries(a)) {
a.value = 'complete'
if (key == b[0].Stage)
break
}
});

console.log(a);

这就是我想要做的。检查什么是 Stage b 中的值JSON 变量。然后转到我的 a JSON 变量并在其上循环。如果 Key匹配, Stage值,直到特定键,我想更新 a 中的值可变为 complete ,休息,原样返回。
从上面的代码片段中,预期的输出是。
[{
"a": "complete"
}, {
"b": "complete"
}, {
"c": "complete"
}, {
"d": "Not Started"
}, {
"e": "Not Started"
}];
由于 Stage b 中的值舞台是 c .
请让我知道如何实现这一目标。
谢谢

最佳答案

如果对象的键是字母字符(假设您提供的示例不是概括),则可以利用字符代码的顺序:

const a = [{
"a": "Not Started"
}, {
"b": "Not Started"
}, {
"c": "Not Started"
}, {
"d": "Not Started"
}, {
"e": "Not Started"
}];

const b = [{
"Id": 1,
"Stage": "c"
}];


for (obj of a) {
const key = Object.keys(obj)[0]
if (key.charCodeAt(0) <= b[0]["Stage"].charCodeAt(0)) {
obj[key] = "complete"
}
}

console.log(a)

如果字母顺序不是这种情况,您可以按照上面的解决方案

关于javascript - 无法在循环中更新 json 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67323392/

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