首页 新闻 会员 周边

如何修改数组中对象的key

0
[已解决问题] 解决于 2018-05-31 16:28
data1: [
  {
    appName: '应用1',
    capacity: 233456
  },
  {
    title: '应用2',
    key: 124535
  }
],
data2: [
  {
    name: '应用1',
    value: 233456
  },
  {
    name: '应用2',
    value: 124535
  }
]
  • 说明:
    data1是后台响应的数据。data2是要格式化的数据。
    data1和data2的数据格式一样,只是key不一样。

  • 问题:
    如何写一个方法第一个参数是原数据(data1),第二个参数是一个数组是保存key。返回data2

js
拉风的人儿的主页 拉风的人儿 | 初学一级 | 园豆:45
提问于:2018-05-31 11:45
< >
分享
最佳答案
0

什么语言啊

奖励园豆:5
思念断了线 | 菜鸟二级 |园豆:263 | 2018-05-31 13:42

js

拉风的人儿 | 园豆:45 (初学一级) | 2018-05-31 14:29
convertKey (arr, key) {
  let newArr = [];
  arr.forEach((item, index) => {
    let newObj = {};
    for (var i = 0; i < key.length; i++) {
      newObj[key[i]] = item[Object.keys(item)[i]]
    }
    newArr.push(newObj);
  })
  console.log(newArr)
  return newArr;
}

let data2 = convertKey(data1, ['name', 'value']);

搞定了

拉风的人儿 | 园豆:45 (初学一级) | 2018-05-31 16:28
其他回答(1)
0
var data1 = [
    {
        appName: '应用1',
        capacity: 233456
    },
    {
        title: '应用2',
        key: 124535
    }
]
var test = [];
var index =0;
$.each(data1, function (i) {
    $.each(data1[i], function (l,j) {
        var value = data1[i][j];
        var key = j;
        var ss = {};
        console.log(index)
        ss[key] = value;
        test.push(ss);
        index++
    })
});
console.log(test)

有图有真相,想怎么拼就怎么拼

DanBrown | 园豆:1321 (小虾三级) | 2018-05-31 16:42

我发现data1写错了。应该是这样。

data1: [
  {
    appName: '应用1',
    capacity: 233456
  },
  {
    appName: '应用2',
    capacity: 124535
  }
]

不过还是谢谢你

支持(0) 反对(0) 拉风的人儿 | 园豆:45 (初学一级) | 2018-05-31 16:46

@拉风的人儿: 那就更简单了,你能看明白吧,我写的方法

支持(0) 反对(0) DanBrown | 园豆:1321 (小虾三级) | 2018-05-31 16:47

@DanBrown: 嗯,我自己搞定了,谢谢。

支持(0) 反对(0) 拉风的人儿 | 园豆:45 (初学一级) | 2018-05-31 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册