默认情况下,在react js中设置数组的每个对象的属性

时间:2018-03-30 00:53:18

标签: javascript reactjs

我在构造函数中声明了一个名为filter的空数组:

constructor(props){
    super(props);
    this.state = {
       filter: []
    }
}

我得到一个API响应,它是一个类似于下面的数组对象并存储在过滤器变量中。

[    
    {
       name: "xyz",
       language: "english",
       age: 20
    },
    {
       name: "abc",
       language: "history",
       age: 21
    },
    {
       name: "efi",
       language: "geography",
       age: 20
    }
]

我正在寻找一种方法,我可以在jsx文件中默认为过滤器数组中的每个对象设置类似checked = false的属性。虽然API的响应是在上面,但是在收到响应后,数组应该是

[    
    {
       name: "xyz",
       language: "english",
       age: 20,
       **checked: false**
    },
    {
       name: "abc",
       language: "history",
       age: 21,
       **checked: false**
    },
    {
       name: "efi",
       language: "geography",
       age: 20,
       **checked: false**
    }
]

2 个答案:

答案 0 :(得分:2)

使用map和Object.assign,假设obj是您从api获得的respanse,您可以运行下面的函数来解析数组,然后将respanse设置为您的状态

var obj=[    
    {
       name: "xyz",
       language: "english",
       age: 20
    },
    {
       name: "abc",
       language: "history",
       age: 21
    },
    {
       name: "efi",
       language: "geography",
       age: 20
    }
]

var result = obj.map(el => {
  var o = Object.assign({}, el);
  o.checked = false;
  return o;
})


console.log(result);

答案 1 :(得分:0)

 Api.post(JSON.stringify(ConditionJson), AppConst.BaseURL + 'query/execute/conditions/LoyaltyStamps', (err, responseJson) => {
                    if (err) {
                        Alert.alert('Error!', err);
                    }
                    else {
                        var checked = 'false';
                        var name = responseJson.map(function (info) {
                            checked += 'false';
                        });

                        this.setState({
                            ischecked: checked
                        });
                    }
相关问题