2016-09-07 3 views
0

でオブジェクトリストのnull値を除外すると、次のようにマップ:は、私は現在、Object.keysを使用して配列からnull値を除外していたJavaScript

// The ultimate goal is to get the length of my list where !== null 
var length = Object.keys(myList).map(x => myList[x]).filter(x => x !== null).length; 

を、私はこれを行うための別の方法を見つける必要があるためでIE11私はそれに問題があります。何らかの形で第三者のコントロールの機能に干渉しています。

アイデア?この場合

+0

私はより良いアプローチは、時間を確認することだと思いますこれは他のライブラリに影響する可能性があります。 – Sirko

答えて

1

Arrow functionsはIEではサポートされていません。だから、あなたのコードと同等です:

var myList = {'1': '1', '2': '2', '3': '3', '4': null}; 
 
var length = Object.keys(myList).map(function (x) { 
 
    return myList[x] 
 
}).filter(function (x) { 
 
    return x !== null; 
 
}).length; 
 

 
console.log(length);

Object.keys(はmyList)の出力が配列され、あなたが彼らのvaues(NOT NULL)で要素をフィルタリングするだけで済みますので、あなたすべてを削減することがあります。

var myList = {'1': '11', '2': '22', '3': '33', '4': null}; 
 
var length = Object.keys(myList).filter(function (x) { 
 
    return myList[x] !== null; 
 
}).length; 
 

 
console.log(length);

1
var length = 0 

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

for-loopはあなたのmapあるとif-conditionはあなたfilterです。

+0

これはまさに私がする必要があったものです。ありがとう! –

関連する問題