オブジェクトのプロパティES6を条件付きで変更する

htmldev

ES6には以下のオブジェクトがあります。

    const myObject = {
    list1: [
    { title:'test1', acted:false, currentAction:false
    },
    { title:'test2', acted:false, currentAction:false
    },
    { title:'test3', acted:false, currentAction:false
    },
    { title:'test3', acted:false, currentAction:false
    }],
   list2:
     [
    { title:'data1', acted:false, currentAction:false
    },
    { title:'data2', acted:false, currentAction:false
    },
    { title:'data3', acted:false, currentAction:false
    },
    { title:'data4', acted:false, currentAction:true,
    }],
      list3:
     [
    { title:'a1', acted:false, currentAction:false
    },
    { title:'a2', acted:false, currentAction:false
    },
    { title:'a3', acted:false, currentAction:false
    },
    { title:'a4', acted:false, currentAction:false,
    }],

}

currentActionリスト内のプロパティがtrueであるかどうかを確認し、falseにして、変更されたオブジェクト全体を返します。

オブジェクトのプロパティを直接変更する方法は知っていますが、オブジェクト内のリストをフィルタリングして変更できるかどうかはわかりません。

これは私が試したものです

const newObject = { ...myObject, currentAction:true }
ブライアン・ドレイク

このコードを試しました:

const newObject = { ...myObject, currentAction:true }

これは何もフィルタリングせず、あなたが望むものに近づきません。しかし、それは質問を明確にするのに役立ちます。「変更されたオブジェクト全体を返す」と言うとき、明らかに全体を意味しているようです。

{
    list1: [
    { title:'test1', acted:false, currentAction:false
    },
    { title:'test2', acted:false, currentAction:false
    },
    { title:'test3', acted:false, currentAction:false
    },
    { title:'test3', acted:false, currentAction:false
    }],
   list2:
     [
    { title:'data1', acted:false, currentAction:false
    },
    { title:'data2', acted:false, currentAction:false
    },
    { title:'data3', acted:false, currentAction:false
    },
    { title:'data4', acted:false, currentAction:true,
    }],
      list3:
     [
    { title:'a1', acted:false, currentAction:false
    },
    { title:'a2', acted:false, currentAction:false
    },
    { title:'a3', acted:false, currentAction:false
    },
    { title:'a4', acted:false, currentAction:false,
    }],

}

それでは、質問に答えましょう。まず、currentActionプロパティを次のようにリセットしますfalse

for (listIndex = 0; listIndex < 3; ++listIndex) {
    for (const innerObject of myObject["list" + listIndex]) {
        innerObject.currentAction = false;
    }
}

表記"list" + listIndexは文字列の連結です。表記myObject[...]は、計算されたプロパティ名を使用してプロパティにアクセスするために使用されます。これにより配列が得られ、を使用して繰り返しfor (const innerObject of ...)ます。

ここで、新しいオブジェクトを返すために:すでににあるので、必要ありませんmyObjectmyObjectとして宣言されていても、それが含むconstオブジェクト参照が定数であることを意味しますつまり、myObject常に同じオブジェクトを参照します。ただし、オブジェクト自体は変更される可能性があります。


編集: Felix Klingは、のプロパティfor (const list of Object.values(myObject))を反復処理するために使用することを提案しましたmyObjectこのように、プロパティの数や名前については何も想定していません。また、名前innerObjectをに変更しましたlistItem

for (const list of Object.values(myObject)) {
    for (const listItem of list) {
        listItem.currentAction = false;
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトを拡散し、1つのプロパティを条件付きで変更しますES6

分類Dev

ES6でオブジェクトプロパティの名前を変更する最良の方法

分類Dev

jqを使用してオブジェクトのプロパティを条件付きで変更する

分類Dev

オブジェクトのプロパティを条件付きで変更する

分類Dev

オブジェクトのプロパティを破壊es6で配列に変換する方法

分類Dev

オブジェクトのすべてのes6を使用して、条件付きのすべてのプロパティを確認します

分類Dev

オブジェクトプロパティを条件付きで使用する

分類Dev

ES6のキーでオブジェクトプロパティをフィルタリングする

分類Dev

NodeJS:自己呼び出し関数よりもオブジェクトに条件付きプロパティを作成する短い方法ですか?(ES5またはES6のいずれか)

分類Dev

c# - Linq はオブジェクトのリストからプロパティを選択し、短縮形の条件付きで変更します

分類Dev

オブジェクトのプロパティを条件付きで設定する

分類Dev

JSONオブジェクトでオブジェクトのプロパティ値を変更する方法

分類Dev

プロパティの変更を含むオブジェクトを返すES6関数はありますか?

分類Dev

条件付きで1つのオブジェクトから別のオブジェクトにプロパティをコピーする

分類Dev

ES6プロパティが存在するオブジェクトのフィルター配列

分類Dev

オブジェクトの配列のオブジェクトプロパティを変更する

分類Dev

オブジェクトのオブジェクト属性を変更するためのプロパティ

分類Dev

オブジェクトのプロパティを動的に変更する

分類Dev

PHP:オブジェクトプロパティの順序を変更する

分類Dev

オブジェクトのプロパティを変更する

分類Dev

jquery オブジェクトの 'name' プロパティを変更する

分類Dev

PythonでプログラムでAutoCADオブジェクトのプロパティを変更する方法

分類Dev

オブジェクトsetStateにES6計算プロパティ構文を使用するのはなぜですか?

分類Dev

typescriptの変数でオブジェクトプロパティを変更する

分類Dev

ES6-オブジェクトのオブジェクトをループし、追加のプロパティでオブジェクトを変更します

分類Dev

NgRxストア-別の状態オブジェクトのプロパティに基づいて条件付きでデータをロードする

分類Dev

Javascriptで、オブジェクトのプロパティを条件付きで更新するにはどうすればよいですか?

分類Dev

QMLで他のオブジェクトのプロパティを変更する方法

分類Dev

オブジェクトのプロパティを条件付きで更新するにはどうすればよいですか?

Related 関連記事

  1. 1

    オブジェクトを拡散し、1つのプロパティを条件付きで変更しますES6

  2. 2

    ES6でオブジェクトプロパティの名前を変更する最良の方法

  3. 3

    jqを使用してオブジェクトのプロパティを条件付きで変更する

  4. 4

    オブジェクトのプロパティを条件付きで変更する

  5. 5

    オブジェクトのプロパティを破壊es6で配列に変換する方法

  6. 6

    オブジェクトのすべてのes6を使用して、条件付きのすべてのプロパティを確認します

  7. 7

    オブジェクトプロパティを条件付きで使用する

  8. 8

    ES6のキーでオブジェクトプロパティをフィルタリングする

  9. 9

    NodeJS:自己呼び出し関数よりもオブジェクトに条件付きプロパティを作成する短い方法ですか?(ES5またはES6のいずれか)

  10. 10

    c# - Linq はオブジェクトのリストからプロパティを選択し、短縮形の条件付きで変更します

  11. 11

    オブジェクトのプロパティを条件付きで設定する

  12. 12

    JSONオブジェクトでオブジェクトのプロパティ値を変更する方法

  13. 13

    プロパティの変更を含むオブジェクトを返すES6関数はありますか?

  14. 14

    条件付きで1つのオブジェクトから別のオブジェクトにプロパティをコピーする

  15. 15

    ES6プロパティが存在するオブジェクトのフィルター配列

  16. 16

    オブジェクトの配列のオブジェクトプロパティを変更する

  17. 17

    オブジェクトのオブジェクト属性を変更するためのプロパティ

  18. 18

    オブジェクトのプロパティを動的に変更する

  19. 19

    PHP:オブジェクトプロパティの順序を変更する

  20. 20

    オブジェクトのプロパティを変更する

  21. 21

    jquery オブジェクトの 'name' プロパティを変更する

  22. 22

    PythonでプログラムでAutoCADオブジェクトのプロパティを変更する方法

  23. 23

    オブジェクトsetStateにES6計算プロパティ構文を使用するのはなぜですか?

  24. 24

    typescriptの変数でオブジェクトプロパティを変更する

  25. 25

    ES6-オブジェクトのオブジェクトをループし、追加のプロパティでオブジェクトを変更します

  26. 26

    NgRxストア-別の状態オブジェクトのプロパティに基づいて条件付きでデータをロードする

  27. 27

    Javascriptで、オブジェクトのプロパティを条件付きで更新するにはどうすればよいですか?

  28. 28

    QMLで他のオブジェクトのプロパティを変更する方法

  29. 29

    オブジェクトのプロパティを条件付きで更新するにはどうすればよいですか?

ホットタグ

アーカイブ