我有:
arrFrom = [{a: 1, b: 1}, {a: 1, b: undefined}]
arrTo = []
我尝试从arrFrom创建新的arrTo:
for (let value of arrFrom){
arrTo.push({x: value.a, y: value.b })
}
我需要捕捉未定义的值。 我知道,我可以使用函数或运算符,如:
arrTo.push({x: value.a, y: value.b || 0 })
arrTo.push({x: value.a, y: value.b ? value.b: 0 })
我可以使用'in'运算符/回调/其他样式吗?
编辑: 感谢您的评论, 我的意思是如果可以使用这样的语法(这不起作用):
arrTo.push({x: value.a, y: ('undefined' in value.b) ? true: 0 })
答案 0 :(得分:1)
arrTo.push({x: a.value, y: b.value || 0 })
我认为这不是OP,永远不会应用0,因为总是假的。 然后你可以使用:
arrTo.push({x: a.value, y: ('value' in b) ? b.value: 0 })
检查undefined是一个很长的故事,但我总是使用:
typeof value != 'undefined' && value !== null
答案 1 :(得分:0)
你打算这样做:
arrFrom = [{a: 1, b: 1}, {a: 1, b: undefined}];
arrTo = [];
for (var value of arrFrom){
arrTo.push({x: value.a, y: value.b || 0 })
}
console.log(arrTo); // [ { "x": 1, "y": 1 }, { "x": 1, "y": 0 } ]