是否有一种聪明的方法来替换/替换数组中的值
例如
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多行
答案 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)