2017-10-17 7 views
1

私はキーに製品IDが使用されているJavascriptで配列を作成しています。キーが数値であるため、配列は空白で空白を埋めています。javascriptキーの整数を強制的にnullで配列を塗りつぶし

ですから、例えば、私は2つだけの製品を持っていたし、そのIDは、私のようなものだろう、5と7だった場合:

var arr = [] 
arr[5] = 'my first product'; 
arr[7] = 'my second product'; 

この配列は、その後、PHPスクリプトではなく、配列を印刷する時に渡されたが、私は次のようになる。

Array (
    [0] = null 
    [1] = null 
    [2] = null 
    [3] = null 
    [4] = null 
    [5] = My first product 
    [6] = null 
    [7] = My second product 
) 

私のID番号は、実際には6桁の長さであるので、配列をループするとき、私は実際には2つのだけの製品を持っている場合でも、10万回の反復があります。

null値が入力されないように配列を作成する方法はありますか?代わりにキーを文字列にすることを考えましたが、配列が動的に構築されるので、どうやってそれを行うのかは分かりません。

var arr = []; 
for(var i=0; i<products.length; i++) 
{ 
    array[products[i].id] = products[i].name; 
} 

javascriptのキー整数を強制おかげ

+0

IDがキー – Andrea

+0

あるマップを、使用スパース配列、またはどのように配列を使用せずにデータを格納するを反復についての質問ですか? –

+2

オブジェクトはより良い解決策にはなりませんか? 'var arr = {}; arr [5] = '私の最初の製品'; arr [7] = '私の2番目の製品'; ' – Craicerjack

答えて

1

配列を反復するには、Array#forEachを使用できます。これは、疎な項目をスキップします。より良い組織のため

var array = []; 
 

 
array[5] = 'my first product'; 
 
array[7] = 'my second product'; 
 

 
array.forEach(function (a, i) { 
 
    console.log(i, a); 
 
});

、あなたは指定されたidとの直接のアクセスを、オブジェクトを使用することができます。

{ 
    5: 'my first product', 
    7: 'my second product' 
} 
0

あなたは空の配列を宣言して、配列内の第六及び第八の要素に値を設定している、ヌル

で配列を埋めます。他の要素の値はnullになります。

pushに項目を追加するつもりがない場合、つまりオブジェクトを使用する場合。これは、作成されたオブジェクトを意味

var obj = {}; 
obj[5] = "my first product"; 
obj[7] = "my second product"; 

ものなどがある:

OBJ = { "5": "私の第一製品"、 "7"、 "私の第二製品"}

0

var arr = [] 
 
arr[5] = 'my first product'; 
 
arr[7] = 'my second product'; 
 
let result = arr.filter(ar => ar != null); 
 
console.log(result);

関連する問題