如何将属性从对象数组传递到api请求

时间:2020-05-24 12:15:13

标签: javascript reactjs ecmascript-6

我有一个对象数组。我想从我的对象数组中选择一些值,然后将其发送到我正在调用componentDidMount的api的请求参数中。 我的阵列-

 ValueError                                Traceback (most recent call last)
<ipython-input-4-0664c7dc8c6b> in <module>
      1 first_image = train_generator[0][0]
      2 first_image = np.array(first_image, dtype='float')
----> 3 pixels = first_image.reshape((28, 28))
      4 plt.imshow(pixels, cmap='gray')
      5 plt.show()

ValueError: cannot reshape array of size 6291456 into shape (28,28)

为了获得价值,我正在这样做-

const myArray = [
  {
    id:'73',
    name:'ABC',
    age: '20',
  },
  {
    id:'74',
    name:'XYZ',
    age: '21',
  },
  {
    id:'75',
    name:'PQR',
    age: '22',
  },
  {
    id:'76',
    name:'TUV',
    age: '23',
  }
] 


useEffect(
    () => {
      const newData = myArray.map(list => {
      // Logic to add few more keys to existing array
      return newData; // new array with few additional properties
      });

      let data= newData.map(({name, age}) => ({name,age}));
      const reqParams = {
        userData: {
          data: [
            {
              data,
            },
          ],
        },
      };
      getUserData(reqParams); // API call
    [],
  );

这将返回一个数组,因此,我不确定这是否是正确的方法。试图了解如何将值传递给我的请求参数。

3 个答案:

答案 0 :(得分:0)

您可以通过将其包装在({})大括号中来在地图回调中创建新对象

let data= myArray.map(({name, age}) => ({name,age}));

const reqParams = {
        userData: {
          data
        },
      };

答案 1 :(得分:0)

如果尚未尝试,请尝试按以下方式编写newData计算:

const newData = myArray.map(list => {
  return {
    ...list,
    key: value // additional property
  }
});

答案 2 :(得分:0)

这是在单个循环中实现所需输出的示例代码

const myArray = [{
    id: '73',
    name: 'ABC',
    age: '20',
}, {
    id: '74',
    name: 'XYZ',
    age: '21',
}, {
    id: '75',
    name: 'PQR',
    age: '22',
}, {
    id: '76',
    name: 'TUV',
    age: '23',
}]


const newArr = myArray.map((d,index) => {
    // return new obj structure with subset of myArray and extra values
    
    const extraData = {
        company: 'foo', // adding company & city [read/get it from anywhere]
        city:'bar',
        sampleIndex: index+1
    }

    const newObj = {
        name: d.name, // not adding id, age
        ...extraData
    }

    return newObj
})

console.log("newArr ", newArr)

const reqParams = {
  userData: {
    data: newArr
  },
};

console.log("reqParams ", reqParams)