2017-08-02 60 views
0

我有以下數組。檢查哪些數組元素具有空值

var arrayNames = [ null, 'data', null]; 

我想檢查數組中的哪個位置爲空。數組元素[0]和[2]爲空,

所以在輸出端,我需要1,2被分配給一個變量'nullValues' 有人可以讓我知道如何做到這一點。可能很簡單,我很愚蠢,不能得到它。任何幫助表示讚賞。謝謝。

回答

1

您可以使用Array#reduce僅獲取null值的元素索引。

let arrayNames = [null, 'data', null]; 
 

 
let nullValues = arrayNames.reduce((s, a, i) => { 
 
    if (a == null) { 
 
    s.push(i); 
 
    } 
 
    return s; 
 
}, []); 
 

 
console.log(nullValues);

+0

這不運行 – mmenschig

+0

@mmenschig它對我來說很好,只需單擊'run code snippet'來查看結果。 –

+1

我正在建議'過濾器',但你的答案是更好的:) ^^ – btzr

0
var arrayNames = [ null, 'data', null]; 
var nullValues = [] 
arrayNames.forEach(function(item, index) { 
    if (item === null) { 
    nullValues.push(index); 
    } 
}); 

console.log(nullValues) // [0, 2] 

這裏假定您可以訪問Array.forEach針對瀏覽器()。如果您還沒有,那麼

var arrayNames = [ null, 'data', null]; 
var nullValues = [] 
for (var i = 0; i < arrayNames.length; i++) { 
    if (arrayNames[i] === null) { 
    nullValues.push(i); 
    } 
}; 

console.log(nullValues) // [0, 2] 
1

只需將您想要對null執行的任何操作替換即可。

for (int i = 0; i < arrayNames.length; i++) { 
    if (arrayNames[i] === null) { 
     // Do stuff for index i 
    } 
}