方法一:保留旧数组 key 和 value ;

var arr = [
	{label: "张三", value: 1},
    {label: "李四", value: "2"},
    {label: "王五", value: "3"}
];
arr = arr.map(item => ({
	 ...item,
    new_key: item.value
}));

arr打印结果:[
	{label: "张三", value: 1, new_key:1},
    {label: "李四", value: 2, new_key:2},
    {label: "王五", value: 3, new_key:3}
]

方法二:不保留旧数组 key 和 value ;

<1>说明:使用map循环,在map循环内创建一个新对象,将item要改变的key赋给新创建的对象里面新key值,然后push给一个新创建的数组newArr即可;

var newArr = [];    //新数组
arr.map(item => {
    let obj = {
        name: item.name,
        value: item.count,
    }
     newArr.push(obj);
});

<2> 使用forEach循环 + for循环,通过Object.keys()来改变属性key;

changeKey (arr, key) {
    let newArr = []; // 创建一个新数组
    arr.forEach((item, index) => {
        let obj = {}; // 新数组里的新对象
        for (var i = 0; i < key.length; i++) {
            obj[key[i]] = item[Object.keys(item)[i]]; // 将key值替换掉
        }
        newArr.push(obj);
    })
    console.log(newArr,'newArr');
    return newArr;
};

let newArr = this.changeKey(arr, ['name','value']);

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐