询问数组javascript中是否有条件

时间:2017-02-20 02:58:33

标签: javascript arrays

我有这样的数组结构:

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错误。

3 个答案:

答案 0 :(得分:2)

array.map(({name, value}) => ({
   name : (name === null) ? "" : name,
   value : (value === null) ? "" : value    
}))

假设您正在检查与null(不是undefinedfalse或其他内容)的完全相等,这就是我们使用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循环遍历数组中的元素,因为这通常被认为是不好的做法。