用数组中的零值替换空

时间:2018-07-10 07:35:09

标签: javascript

我的数组为,我需要删除空值并将其替换为零。

我已经取得了很大的成就。当我检查数组长度为8但它只显示2个元素。用零代替它的最佳方法是什么。

var a = [];

a[3] = 5

a[5] = 15

console.log(a.length) // 6

console.log(a) // [empty,empty,empty,5,empty,15] 

how can i make the output as [0,0,0,5,0,15]

//以这种方式尝试不起作用

a.map(o => o !== null ? o : 0)

3 个答案:

答案 0 :(得分:3)

一种方法是使用Array.from,它从0到数组的length遍历每个元素(与map不同,var a = []; a[3] = 5 a[5] = 15 a = Array.from(a, item => item || 0); console.log(a);只对数组上实际存在的属性进行遍历) )

typeof

如果您不想用0替换数组中可能存在的非零假值,则可以执行var a = []; a[3] = 5 a[2] = null; a[5] = 15 a = Array.from(a, item => typeof item === 'undefined' ? 0 : item); console.log(a);检查:

stacked_rnn_cell = list()
for i in range(config.num_layers):
    rnn_cell = tf.contrib.rnn.LSTMCell(num_units=config.dim_hidden)
    stacked_rnn_cell.append(rnn_cell)
rnn_cell = tf.contrib.rnn.MultiRNNCell(cells=stacked_rnn_cell, state_is_tuple=True)

答案 1 :(得分:0)

您可以尝试一下,

var a = [];
a[3] = 5
a[2] = null
a[5] = 15

for (var i = 0; i < a.length; i++) {   
    if (a[i] == undefined) {
        a[i] = 0;
    }   
}
console.log(a);

另外,您可以使用Array.prototype.map

a = a.map(function(val, i) {
    return val === undefined ? 0 : val;
});

答案 2 :(得分:0)

您可以使用此功能执行此操作,并将要替换的值设置为0,''或null

function replaceEmptyWith(arr,val) {
  var _arr = [];
  if (arr && arr.length > 0) {
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] === undefined) _arr[i] = val;
      else _arr[i] = arr[i];
    }
    return _arr;
  }
  return arr;
}

var a = [];

a[3] = 5

a[5] = 15

a = replaceEmptyWith(a,0);

我还发现this question可能对您有帮助