【问题标题】:Matching the object key and add a new key and value into it using lodash匹配对象键并使用 lodash 向其中添加新键和值
【发布时间】:2016-10-02 19:27:54
【问题描述】:

我有一个对象

 {
  sampletrue:{
  data1:'data',
  data2:'data'
   },
  samplefalse:{
  data1:'data',
  data2:'data'
 }   
}  

在这里,我要做的是使用对象键名,我想在其中添加一个新的键/值对。假设对于“sampletrue”对象,我想匹配键名,如果它有“true”,我需要添加一个新值作为“resolve:'enable'”,如果它是“false”,我想添加“resolve: 'disable'" 我在我的代码中使用了 lodash。

样本输出:

 {
sampletrue:{
data1:'data',
data2:'data',
 resolve:'enable'
 },
samplefalse:{
data1:'data',
data2:'data'
resolve:'disable' 
}   
} 

谢谢!

【问题讨论】:

    标签: angularjs lodash


    【解决方案1】:

    你可以在 cmets 中找到解释:

    var d = {
       sampletrue: {
         data1: 'data',
         data2: 'data'
       },
       samplefalse: {
         data1: 'data',
         data2: 'data'
       }
     }
    // loop through the keys of the object with Object.keys() and forEach()
    Object.keys(d).forEach(k => {
    // we check with match method if the key (k) matches 'true'
      if (k.match(/true$/))
        d[k].resolve='enable' ;//if it matches assign resolve prop , 'enable' val
      
    //same as above but with 'false'
      if (k.match(/false$/))
        d[k].resolve='disable' ;
    })
    
    console.log(d)

    【讨论】:

    • 感谢您的回答。为什么我们需要 k>= 只是试图理解
    • forEach() 是一个数组方法,它允许通过每个数组条目循环执行一个函数;回调函数中的第一个参数是项目(在本例中为键)。 ForEach 是 js 的基础,所以花点时间彻底学习它
    • 我尝试与 lodash 一起使用,效果很棒。不过谢谢你的回答
    猜你喜欢
    • 2021-01-26
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多