【问题标题】:How to loop through the value of a object key compare it to another value if match than change it to another value如何遍历对象键的值,如果匹配,则将其与另一个值进行比较,而不是将其更改为另一个值
【发布时间】:2021-07-07 22:38:19
【问题描述】:

我有一个名为userGraph的嵌套对象:

var userGraph ={
    Book: {copyBook: 2, brownBook: 3},
    Shoes: {whiteshoes: 3, blackshoes: 4}
}

我想遍历我的 userGraph 对象的所有键的值。如果任何键与“copyBook”匹配,那么我想将该键更改为“blackBook”之类的其他键,以便新对象看起来像

var userGraph ={
   Book: {blackBook: 2, brownBook: 3},
   Shoes: {whiteShoes: 3, blackShoes: 4}
}

【问题讨论】:

    标签: javascript object ecmascript-6


    【解决方案1】:

    您可以遍历所有值并使用delete 运算符。

    var userGraph = {
      Book: {copyBook:2,brownBook:3},
      Shoes: {whiteshoes:3, blackshoes:4}
    };
    let remove = 'copyBook', replace = 'blackBook';
    for(const o of Object.values(userGraph)){
      if(remove in o){
        o[replace] = o[remove];
        delete o[remove];
      }
    }
    console.log(userGraph);

    【讨论】:

      【解决方案2】:

      var userGraph ={
      Book:{copyBook:2,brownBook:3},
      Shoes:{whiteshoes:3, blackshoes:4}
      }
      for (var key in userGraph) {              
           for (var key2 in userGraph[key]) {
             if(key2 == 'copyBook'){
                 userGraph[key]['blackBook']=userGraph[key][key2];
                 delete userGraph[key][key2];}
        }
      }
      console.log(userGraph);
          

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-30
        相关资源
        最近更新 更多