1

1 つのレコード内に 1000 を超えるプロパティを持つ線形 (または単一次元) オブジェクトがあります。10000 を超えるレコードをトラバースする必要があります。単一のレコード内のオブジェクトによって、必要なプロパティが含まれていない場合があります。オブジェクトのすべてのプロパティをループするか、オブジェクトを参照してキーがオブジェクトで使用可能かどうかを直接確認することで、それらをトラバースするためのより良い戦略を知りたいです。これをよりよく理解するために、以下の例を確認してください。

シナリオの例を考えてみましょう:

var a = {
  "x": 1,
  "y": 2,
  "z": 3,
  "t": 4
}; //linear object
var flagA = false;
var b = {
  "x": 10,
  "y": 11,
  "z": 12
}; //linear object
var flagB = false;


//now I have to check the value of "t" in both objects.

//----------------------------------By use of looping-------------------------------//
for (var i in a) {
  if (i == "t") {
    flagA = true;
    break;
  }
}

for (var i in b) {
  if (i == "t") {
    flagB = true;
    break;
  }
}

//for object a
if (flagA) console.log("value found in object a for t:", a.t);
else console.log("value not found for t in object a");

//for object b
if (flagB) console.log("value found in object b for t:", a.t);
else console.log("value not found for t in object b");


//--------------------------------------------------------------------------------------//
console.log("\nANOTHER METHOD\n");
//-----------------------------------By use of Key-------------------------------------//

//for object a
if (a["t"]) console.log("value found in object a for t:", a["t"]);
else console.log("value not found for t in object a");

//for object b
if (b["t"]) console.log("value found in object b for t:", b["t"]);
else console.log("value not found for t in object b");
//--------------------------------------------------------------------------------------//

どの方法を使用する必要があり、その理由は?

4

1 に答える 1