我有一个json data,它是:
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:意外的标记[
请帮帮忙
发布于 2019-01-15 02:27:43
这里有几个地方是错的。首先,您的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]此测试将始终失败,因为阵列data_work_in中没有成员D。
发布于 2019-01-15 03:01:00
我想你是认真的
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}
发布于 2019-01-15 02:26:18
你可以检查这个值(通过严格的比较,你需要相同的类型,一个数字),并分配一个布尔检查的数值。
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; }
https://stackoverflow.com/questions/54187063
复制相似问题