1

我有一些排列成这样的数组:

var row1 = [4,6,4,0,9];
var row2 = [5,2,0,8,1];
var row3 = [2,0,3,1,6];

我想用空值替换任何具有 0 的值。所以它们看起来像:

var row1 = [4,6,4,,9];
var row2 = [5,2,,8,1];
var row3 = [2,,3,1,6];

有任何想法吗?基本上我要做的是循环遍历数组的每个值,检查它是否等于 0,如果是,则将其替换为空值。

提前致谢。

4

3 回答 3

7

您可以使用Array.prototype.map

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

http://jsfiddle.net/6Mz38/

于 2013-05-15T22:53:42.737 回答
3

你可以这样做:

var row1 = [4,6,4,0,9];
var row2 = [5,2,0,8,1];
var row3 = [2,0,3,1,6];

var arrRows = [row1, row2, row3];

for (var i = 0; i < arrRows.length; i++) {
    for (var j = 0; j < arrRows[i].length; j++) {
        if (arrRows[i][j] == 0) {
            arrRows[i][j] = null;
        }
    }
}

演示:http: //jsfiddle.net/npYr2/

于 2013-05-15T22:33:40.997 回答
1

另一种可能性如下

var rows = [row1, row2, row3];

rows = rows.map(function(x){ return x.map(function(y){ return y === 0? null: y})});
于 2016-05-19T09:01:42.430 回答