admin管理员组

文章数量:1355754

I have this in my state:

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

But I need something like this dynamically:

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);
} 

I got a error here fbPages.push({item.id: item.name});, how can I do this?

I have this in my state:

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

But I need something like this dynamically:

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);
} 

I got a error here fbPages.push({item.id: item.name});, how can I do this?

Share Improve this question edited Sep 5, 2017 at 14:16 Bruno Peres 16.4k6 gold badges56 silver badges92 bronze badges asked Sep 5, 2017 at 14:04 Diego OliveiraDiego Oliveira 1211 gold badge1 silver badge9 bronze badges 2
  • fbPages should be an array and not an object. – Hemerson Carlin Commented Sep 5, 2017 at 14:07
  • declare fbPages as an array like this: var fbPages = [] – Mayank Shukla Commented Sep 5, 2017 at 14:08
Add a ment  | 

3 Answers 3

Reset to default 3

You are using push but fbPages is not an array. If you want to add another property to the object do fbPages[item.id] = item.name; instead

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

Unless you wanted an array to begin with, then declare it as such instead var fbPages = []

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

Please find below sample snippet:

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);

Object does not support push method you need to define fbPages to array

var fbPages= [];
fbPages[0] ={'123':'Teste','142':'Teste2'}

And in Function

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);
} 

本文标签: javascriptHow add item in an objectStack Overflow