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()
を使用する 列挙可能なプロパティ(オブジェクト自体)のみをカウントする場合。
-
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
-
JavaScriptでオブジェクトの値を取得するにはどうすればよいですか?
Object.values()などのメソッドがいくつかあります オブジェクトの値を取得します。しかし、これらの方法では、値を見つけるプロセスに時間がかかります。これを軽減するには、 Underscore.js javascriptのライブラリは、 _。values()と呼ばれるメソッドを提供しています 。このメソッドでは、値を実行するためにforループは必要ありません。これは、オブジェクトの値を実行するための直接的な方法です。 次の例では、オブジェクトの値は Object.values()を使用して実行されました。 方法。このメソッドにはforループが必要です 値を実行します。 例 &l