Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptオブジェクトのプロパティの数を数える方法

2つの異なるメソッドを使用して、JavaScriptオブジェクトのプロパティの数をカウントする方法を学びます。

JavaScriptオブジェクトのプロパティの数を数えるには、次のいずれかを使用できます。

  • for ループ
  • またはObject.keys() メソッド。

両方を調べてみましょう!

forループでオブジェクトのプロパティをカウントする

これがdogというJavaScriptオブジェクトです :

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

dogのオブジェクトプロパティの数をカウントするには 、最初にcountという変数を宣言しましょう 開始値を0にします :

let count = 0

次に、dogをループする必要があります オブジェクトと、遭遇したプロパティごとに、countに1(+ 1)を追加します。 変数:

for (let properties in dog) {
  count = count + 1
}

次に、console.log()を使用して結果を印刷してみます :

console.log(count)
// Result: 4

コードを正しく記述した場合は、4を取得する必要があります 。

Object.keys()を使用してオブジェクトのプロパティをカウントします

JavaScriptのObject.keys()を使用することもできます すべての列挙可能をカウントするメソッド オブジェクトのプロパティ(これについては1秒で詳しく説明します)。

dogを再利用しましょう 以前のオブジェクトですが、今はdogを渡します Object.keys()へのオブジェクト lengthを使用してその長さを計算します プロパティ:

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

let count = Object.keys(dog).length

console.log(count)
// Result: 4

ご覧のとおり、結果は同じです。それともそうですか?

はいといいえ。状況によって異なります。

for vs. Object.keys()

forを使用する場合の違い ループとObject.keys() は:

  • for ループは、オブジェクトの両方のプロパティをカウントします(ここでは、dog )およびその外部のオブジェクトにリンクされている可能性のあるすべてのプロパティ。
  • デフォルトでは、Object.keys() メソッドは、オブジェクトの(独自の)列挙プロパティのみをカウント(列挙)します。リンクされたプロパティはカウントしません。

列挙 カウントの別の言葉です。

「リンクされたプロパティ」とはどういう意味ですか?

同じObject.keys()を見てみましょう 以前の例ですが、今回はリンク dog animalというオブジェクトへのオブジェクト _proto_を使用する プロパティ:

// New object
let animal = {
  fourLegs: true,
}

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

// Link dog object to animal object
dog.__proto__ = animal

var count = Object.keys(dog).length
console.log(count)
// Result: 4

dogのプロパティの総数が4の場合、なぜ結果が4になるのですか。 およびanimal は5で、それらをリンクして数えただけですか?

Object.keys()を使用しているため これは、リンクされたプロパティではなく、独自の(列挙可能な)プロパティのみをカウントします。したがって、fourLegs animalのプロパティ 上記の例では、オブジェクトはカウントされません。

別の例を試してみましょうが、今回はforを使用します プロパティをカウントするためのループ:

const animal = {
  fourLegs: true,
}

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

// Link dog object to animal object
dog.__proto__ = animal

let count = 0

for (properties in dog) {
  count = count + 1
}

console.log(count)
// Result: 5

Object.keys()とは異なり、5つのプロパティすべてを取得しています。 forを使用する場合 すべてをカウントするループ リンクを含むオブジェクトのプロパティ オブジェクトのプロパティ。

ご覧のとおり、どちらのアプローチを使用するかが重要です。

要約:

  • オブジェクト内のプロパティの数をカウントする方法は2つあります。 forを使用できます ループまたはObject.keys() メソッド。
  • forを使用する リンクされたオブジェクトのプロパティをプロパティ数に含める場合は、ループします。
  • Object.keys()を使用する 列挙可能なプロパティ(オブジェクト自体)のみをカウントする場合。

  1. JavaScriptでオブジェクトのプロパティを削除するにはどうすればよいですか?

    以下は、JavaScriptでオブジェクトのプロパティを削除するためのコードです- 例 <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style&g

  2. JavaScriptでオブジェクトの値を取得するにはどうすればよいですか?

    Object.values()などのメソッドがいくつかあります オブジェクトの値を取得します。しかし、これらの方法では、値を見つけるプロセスに時間がかかります。これを軽減するには、 Underscore.js javascriptのライブラリは、 _。values()と呼ばれるメソッドを提供しています 。このメソッドでは、値を実行するためにforループは必要ありません。これは、オブジェクトの値を実行するための直接的な方法です。 次の例では、オブジェクトの値は Object.values()を使用して実行されました。 方法。このメソッドにはforループが必要です 値を実行します。 例 &l