2017-08-02 8 views
0

私は以下の配列を持っています。ヌル値を持つ配列要素を確認してください

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

配列のどの位置がnullであるかチェックしたいと思います。上記の例では、配列要素[0]と[2]はnullです。

出力では、変数 'nullValues'に1,2を割り当てる必要があります。 誰かに私にこれを達成する方法を教えてもらえますか? 。非常に簡単かもしれないと私はそれを取得しないために十分な愚かです。どんな助けもありがとう。ありがとう。

答えて

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これはただの結果を確認するために、 '、実行コードsnippet'をクリックし、 – mmenschig

+0

を実行しません。 –

+1

私は 'filter'を提案しようとしていましたが、あなたの答えはより良いです:) ^^ – 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 
    } 
} 
関連する問題