我有这样的数组结构:
array[1].name = "parameter-name";
array[1].value = null;
array[2].name = null;
array[2].value = "parameter-value2";
我想将null
更改为""
。
这是我在ajax中显示的方式:
for (var i in array) {
if(array[i].name == null) {
array[i].name = "";
}
if(array[i].value == null) {
array[i].value = "";
}
}
如果条件数组的所有项目如何制作?
for (var i in array) {
if(array[i] == null) {
array[i] = "";
}
}
我试过了,但结果是JavaScript错误。
答案 0 :(得分:2)
array.map(({name, value}) => ({
name : (name === null) ? "" : name,
value : (value === null) ? "" : value
}))
假设您正在检查与null
(不是undefined
或false
或其他内容)的完全相等,这就是我们使用x === null
代替{的原因{1}}。
!x

答案 1 :(得分:0)
使用||
运算符的另一个实现,可用于设置默认值。
要使用||
设置默认值,您可以使用
var value = expressionToEvaluate || defaultValue;
如果expressionToEvaluate是 falsey ,那么value
将被分配defaultValue
。了解Javascript中的 falsey 值会很有用。
完整的工作代码:
var array = [{name: "parameter-name1", value: null},
{name: null, value: "parameter-value2"},
{name: null, value: null }
];
array.forEach(x => { x.name = x.name || "";
x.value = x.value || ""});
console.log(array);
答案 2 :(得分:0)
在所有属性上应用从null到空字符串的转换(原始数组):
for (let i = 0; i < array.length; i++) {
const elt = array[i];
for (let prop in elt) {
if (elt[prop] === null) elt[prop] = '';
}
}
请注意,我们没有使用in
循环遍历数组中的元素,因为这通常被认为是不好的做法。