我有一个json数据:
var data_work_in = [
{"A":999,"B":144,"D":"A","E":""},
{"A":999,"B":36,"D":"B","E":""},
{"A":999,"B":36,"D":"W","E":""}
];
我想使用foreach循环在这种情况下填充“ E”记录
if (data_work_in.D === data_work_in[data_work_in.D]
&&
data_work_in[data_work_in.D] === "999")
E = 1
else
E = 0
当我尝试通过其他键的内容查看键的内容时,如下所示:
json.forEach(e=>{
console.log(e.[e.A]);
});
我有此错误:
未捕获的SyntaxError:意外令牌[
请帮助
答案 0 :(得分:2)
这里有些错误。首先是您的console.log
语句包含语法错误-您所看到的错误:
console.log(e.[e.A]); // syntax error
应该是
console.log(e[e.A]); // cleaned
第二,我不完全确定您要通过以下操作来完成什么:
data_work_in.D === data_work_in[data_work_in.D]
此测试将始终失败,因为数组D
中没有成员data_work_in
。
答案 1 :(得分:1)
我想你是这个意思
var data_work_in = [
{"A":999,"B":144,"D":"A","E":""},
{"A":999,"B":36,"D":"B","E":""},
{"A":999,"B":36,"D":"W","E":""}
];
for(let i = 0; i < data_work_in.length; i++){
for(key in data_work_in[i]){
if(key === "D"){
if(data_work_in[i][data_work_in[i][key]] === 999)
data_work_in[i].E = 1;
else
data_work_in[i].E = 0;
}
}
}
console.log(data_work_in)
// result
// 0: {A: 999, B: 144, D: "A", E: 1}
// 1: {A: 999, B: 36, D: "B", E: 0}
// 2: {A: 999, B: 36, D: "W", E: 0}
答案 2 :(得分:0)
您可以检查该值(严格比较,您需要使用相同的类型和一个数字),并为布尔检查分配一个数值。
var data_work_in = [{ A: 999, B: 144, D: "A", E: "" }, { A: 999, B: 36, D: "B", E: "" }, { A: 999, B: 36, D: "W", E: "" }];
data_work_in.forEach(o => o.E = +(o[o.D] === 999));
console.log(data_work_in);
.as-console-wrapper { max-height: 100% !important; top: 0; }