序文
フロントエンド開発では、配列内のすべてのオブジェクトの値が空でないかどうかを判断するのが一般的なタスクです。このタスクには複数のオブジェクトと複数のプロパティが関係する可能性があるため、それを処理するための簡潔で効率的な方法が必要です。この記事では、この問題に簡単に対処できる 3 つの方法を紹介します。
方法 1:every() メソッドと Object.values() メソッドを使用する
every()
方法
パラメータ | 説明 |
---|---|
現在の価値 | しなければならない。現在の要素の値 |
索引 | オプション。現在の要素のインデックス |
到着しました | オプション。現在の要素が属する配列オブジェクト |
Object.values()
方法
パラメータ | 説明 |
---|---|
オブジェクト | 自身の列挙可能なプロパティの値を返すオブジェクトです |
every()
メソッドは、配列内の各要素が指定された条件を満たすかどうかを確認するために使用されます。Object.values()
メソッドはオブジェクトのすべての値を取得し、値の配列を返すために使用されます。この例では、every()
メソッドを使用して、各オブジェクトの値が null でないことを確認します。テスト関数では、Object.values()
オブジェクトのすべての値を取得するメソッドと、every()
各値が空の文字列でないことを確認するメソッドを使用します。allValuesNotEmpty
変数の値は、すべてのオブジェクトの値が null 以外の場合、true
それ以外の場合ですfalse
。
コードは以下のように表示されます。
const arr = [
{
name: "xhong", age: "25" },
{
name: "xlan", age: "30" },
{
name: "xshi", age: "" },
];
const allValuesNotEmpty = arr.every((obj) => {
return Object.values(obj).every((value) => value !== "");
});
console.log(allValuesNotEmpty); // 输出 false
コンソール印刷
方法 2:every() メソッドと Object.keys() メソッドを使用する
Object.keys()
方法
パラメータ | 説明 |
---|---|
オブジェクト | 列挙型自身のプロパティが返されるオブジェクト |
Object.keys()
メソッドはオブジェクトのすべてのキーを取得するために使用され、キーの配列を返します。この例では、every()
メソッドを使用して、各オブジェクトの値が null でないことを確認します。テスト関数では、Object.keys()
オブジェクトのすべてのキーを取得するメソッドと、every()
各キーに対応する値が空の文字列でないことを確認するメソッドを使用します。allValuesNotEmpty
変数の値は、すべてのオブジェクトの値が null 以外の場合、true
それ以外の場合ですfalse
。
コードは以下のように表示されます。
const arr = [
{
name: "li", age: "25" },
{
name: "zhang", age: "" },
{
name: "shi", age: "35" },
];
const allValuesNotEmpty = arr.every((obj) => {
return Object.keys(obj).every((key) => obj[key] !== "");
});
console.log(allValuesNotEmpty); // 输出 false
コンソール印刷
方法 3:every() メソッドと for...in ループを使用する
for...in
ループは、オブジェクトの列挙可能なすべてのプロパティを反復するために使用されます。この例では、every()
メソッドを使用して、各オブジェクトの値が null でないことを確認します。テスト関数では、for...in
オブジェクトのすべてのプロパティをループし、各プロパティに対応する値が空の文字列でないかどうかを確認します。allValuesNotEmpty
変数の値は、すべてのオブジェクトの値が null 以外の場合、true
それ以外の場合ですfalse
。
コードは以下のように表示されます。
const arr = [
{
name: "j", age: "" },
{
name: "k", age: "30" },
{
name: "a", age: "35" },
];
const allValuesNotEmpty = arr.every((obj) => {
for (let key in obj) {
if (obj[key] === "") {
return false;
}
}
return true;
});
console.log(allValuesNotEmpty); // 输出 false
コンソール印刷