简体   繁体   English

如何使用javascript嵌套对象数组中的另一个属性值设置特定属性值?

[英]How to set specific property value with another property value in a javascript nested object array?

 var arr = {
    "data": [
    {
        id    : "a1",
        guid  : "sdfsfd",
        value : "abc",
        "status": "active"
      },
      {
        id    : "a2",
        guid  : "deaf",
        value : "def2",
       details : {
         "status": "inactive",
          "body": done
                  }
        "stat": "inactive"
      },
      {
        id    : "a2",
        guid  : "blind",
        value : "def4",
        details : {
           "status": "inactive",
           "body": donenot
                  }
        "stat": "inactive"
      },
    ]
      
    }
    
    console.log(arr.data.filter(item => item.stat === "inactive"))

OUTPUT输出

 [{
  details: {
    body: "done",
    status: "inactive"
  },
  guid: "deaf",
  id: "a2",
  stat: "inactive",
  value: "def2"
}, {
  details: {
    body: "done",
    status: "inactive"
  },
  guid: "blind",
  id: "a3",
  stat: "inactive",
  value: "def4"
}]

What if I want to set如果我想设置怎么办

  1. The value for every such inactive status(in these 2 outputs) --> value property same as guid property...?每个此类非活动状态的值(在这 2 个输出中)--> value属性与guid属性相同...?
  2. The value for every such inactive status(in these 2 outputs) --> status same as body in details ?每个此类非活动状态的值(在这 2 个输出中)-->详细信息正文相同的状态

For为了

  1. You can do this: arr.data = arr.data.filter(item => item.stat === "inactive").map(e => ({...e, value : e.guid}))你可以这样做: arr.data = arr.data.filter(item => item.stat === "inactive").map(e => ({...e, value : e.guid}))

OUTPUT输出

{
  data: [{
  details: {
    body: "done",
    status: "inactive"
  },
  guid: "deaf",
  id: "a2",
  stat: "inactive",
  value: "deaf"
}, {
  details: {
    body: "done",
    status: "inactive"
  },
  guid: "blind", --> same as value
  id: "a3",
  stat: "inactive",
  value: "blind"
}]
}

For为了

  1. You can do this : arr.data = arr.data.filter(item => item.stat === "inactive").map(e => ({...e, details : {...e.details, status: e.details.body}}))你可以这样做: arr.data = arr.data.filter(item => item.stat === "inactive").map(e => ({...e, details : {...e.details, status: e.details.body}}))

OUTPUT输出

{
  data: [{
  details: {
    body: "done",
    status: "done"
  },
  guid: "deaf",
  id: "a2",
  stat: "inactive",
  value: "def2"
}, {
  details: {
    body: "done",
    status: "done"
  },
  guid: "blind",
  id: "a3",
  stat: "inactive",
  value: "def4"
}]
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何设置javascript对象数组中所有对象的特定属性值(lodash) - How to set specific property value of all objects in a javascript object array (lodash) 如何为Javascript对象中的属性设置值,该属性由键数组标识 - How to set value to a property in a Javascript object, which is identified by an array of keys Javascript:如何为对象数组中的 object 属性设置值? - Javascript: How to set value to an object property inside an array of objects? 如何设置JavaScript对象的属性值? - How to set JavaScript object's property value? JavaScript object 数组在过滤特定属性的值时返回空 - JavaScript object array returned empty when filtering for value of a specific property 如何在javascript中将输入值设置为对象属性的值 - How to set the input value to be a object's property's value in javascript Javascript Redux更新嵌套对象属性值 - Javascript Redux update nested object property value 在嵌套数组中查找具有值的对象并添加属性 - Find object with value in nested array and add property 如何动态获取 JavaScript 中嵌套 object 属性的值? - How do I dynamically get the value of a nested object property in JavaScript? 根据JavaScript中另一个“属性值”从数组中选择“属性值” - Selecting a 'property value' from an array based on another 'property value' in javascript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM