如何在对象中添加项?

时间:2017-09-05 14:04:59

标签: javascript reactjs react-native frontend

我的状态是这样的:

fbPages:{'123':'Teste','142':'Teste2'}

但我动态地需要这样的东西:

async getFbPages(){
        var fbPages = {}
            await this.props.resultPosts.facebookPagesList.data.map(item => {
                fbPages.push({item.id: item.name});
            });
            this.setState({fbPages});
            console.log(this.state);
} 

我在这里遇到错误fbPages.push({item.id: item.name});,我该怎么做?

3 个答案:

答案 0 :(得分:0)

您使用的是push,但fbPages不是数组。 如果要向对象添加其他属性,请改为fbPages[item.id] = item.name;

var fbPages = {};
await this.props.resultPosts.facebookPagesList.data.map(item => {
  fbPages[item.id] = item.name;
});

除非您想要一个数组,否则请将其声明为var fbPages = []

var fbPages = [];
await this.props.resultPosts.facebookPagesList.data.map(item => {
  fbPages.push({
    item.id: item.name
  });
});

答案 1 :(得分:0)

对象不支持您需要将fbPages定义为数组

的推送方法
var fbPages= [];
fbPages[0] ={'123':'Teste','142':'Teste2'}

在功能

async getFbPages(){
            var fbPages= [];
            await this.props.resultPosts.facebookPagesList.data.map(item => {
                fbPages.push({item.id: item.name});
            });
            this.setState({fbPages});
            console.log(this.state);
} 

答案 2 :(得分:0)

请在下面找到示例代码段:



const items = [{
                id:'123',
                name:'Teste'
               },{
               id: '142',
               name: 'Teste2'
             }];

let fbPages = []; // This should be array.

items.map((item)=> {
    fbPages.push({
       [item.id]: item.name
    })
});

console.log(fbPages);