2013-05-15 3 views
0

У меня есть несколько массивов, которые выкладываются как так:Изменить Javascript значения массива от 0 до нулевого значения

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, и, если это так, замените его нулевым значением.

Заранее спасибо.

+3

В какой части вы застряли? Ваше описание будет работать. – PeeHaa

+0

Вы также можете быть заинтересованы в https://developer.mozilla.org/en/docs/JavaScript/Reference/Global_Objects/Array/map – PeeHaa

+0

'[4,6,4,, 9]' недействителен. Возможно, вы имели в виду '[4,6,4, null, 9]'? И.Е. сохранить свойство '.length'? Или вы хотите удалить 0s, оставив вас с '[4,6,4,9]'? –

ответ

2

Вы можете сделать это:

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/

+0

'arrRows [i] [j] == 0' вернет' true' также в 'null',' undefined', '' '' 'и' NaN'. Если вы хотите только преобразовать 0 в tull, вы должны использовать '===' –

0

Другая возможность заключается в следующем

var rows = [row1, row2, row3]; 

rows = rows.map(function(x){ return x.map(function(y){ return y === 0? null: y})}); 
Смежные вопросы