在数组中替换值

时间:2017-11-30 14:08:02

标签: javascript arrays multidimensional-array google-apps-script google-sheets

是否有一种聪明的方法来替换/替换数组中的值

例如

var array = [[1,2,3,'null'],['null',2,3,4],['null','null','null','null'],[1,1,1,1]]

答案应该是我将写入电子表格

[[1,2,3,''],['',2,3,4],['','','',''],[1,1,1,1]]

实际数组比这大得多,并且跨越1000多行

5 个答案:

答案 0 :(得分:3)

如果您可以使用Array.prototype.map,则可以执行以下操作:

var arrayWithoutNulls = array.map(line => line.map(el => el === 'null' ? '' : el))

根据@charlietfl建议进行编辑:这将返回一个新数组。所以将它绑定到一个新变量(如上例所示)或立即返回它,但请记住array变量仍然会有null个元素。

答案 1 :(得分:1)

如果要修改原始数组:



var arrs = [
  [1, 2, 3, 'null'],
  ['null', 2, 3, 4],
  ['null', 'null', 'null', 'null'],
  [1, 1, 1, 1]
];

arrs.forEach(function(arr, i) {
  arrs[i] = arr.join(",").replace(/null/g, '').split(",");
})

console.log(arrs);




答案 2 :(得分:0)

您需要使用map。首先在包含数组,然后在嵌套内部:



var array = [
  [1, 2, 3, 'null'],
  ['null', 2, 3, 4],
  ['null', 'null', 'null', 'null'],
  [1, 1, 1, 1]
]

const newArray = array.map(arr => {
  return arr.map(elem => {
    return elem === 'null' ? '' : elem;
  });
});

console.log(newArray);




答案 3 :(得分:0)

请尝试:

var array = [[1,2,3,'null'],['null',2,3,4],['null','null','null','null'],[1,1,1,1]];


var row = [];
var cols = array[0].length;

for (var i = 0, l = array.length; i < l; i++)
{
  row = array[i];
  for (var col = 0; col < cols; col++)
  {
    if (row[col] === 'null') { row[col] = ''; } 
  }
}

Logger.log(array); // [[1, 2, 3, ], [, 2, 3, 4], [, , , ], [1, 1, 1, 1]]

注意:箭头=>在Google表格中不起作用,使用better performance的简单循环。

答案 4 :(得分:0)

要修改orig数组,您实际上可以使用普通的foreach循环,然后使用拼接方法替换数组中的项目

var array = [[1,2,3,'null'],['null',2,3,4],['null','null','null','null'],[1,1,1,1]]


array.forEach(a => a.forEach((b,i) => {
  if (b === 'null') {
    a.splice(i, 1 , '')
  }
}))
console.log(array)