web-dev-qa-db-ja.com

ObjectJavascriptを使用したforeachループの最後の反復

私はこのようなオブジェクトを持っています。

objName {
 item1 : someItem,
 item2 : someItem,
 item3 : someItem,
}

これで、プロパティの数は動的になり、不明な量で増加する可能性があります。このように、このオブジェクトのプロパティキーでforeachループを実行しています。

Object.keys(objName).forEach(itemNumber => {
console.log(itemNumber);
});

新しいタスクを実行するために、最後の反復をどのように検出しますか?

4
Mihae Kheel

インデックスと配列のパラメータを使用して、次の要素があるかどうかを確認できます。現在のインデックスが同じ長さであるかどうかを確認することもできます-1index == arr.length - 1

let objName = {
 item1 : "someItem",
 item2 : "someItem",
 item3 : "someItem",
}

Object.keys(objName).forEach((item, index, arr) => {
  console.log(item);
  if(!arr[index + 1]) console.log('End')
});
9
Nenad Vracar

以下のコードのように、インデックスと値をforEach関数に渡し、Object.keys(objName).lengthを使用してオブジェクトの長さを取得し、最後のメンバーobjName [value]を取得できます。

 var objName = {
 item1 : "someItem",
 item2 : "someItem",
 item3 : "someItem3",
}
Object.keys(objName).forEach((value, index) => {
if(index==Object.keys(objName).length-1){
  console.log(objName[value]);
}
});
1
Osama

まず、以下のようにオブジェクトの長さを見つけます。

var objLength= Object.keys(objName).length;

次に、次のように使用できます。

var count = 0;

Object.keys(objName).forEach(item => {
    console.log(item);
    count++;
    if (count == objLength)
    {
        console.log("endOfLoop");
    }
});
1
Aparna