我有一个样本数组
const countries = [
{"id": 1, "name": "Afghanistan"},
{"id": 2, "name": "Albania"},
{"id": 3, "name": "Algeria"},
{"id": 4, "name": "American Samoa"}
];如何将密钥从id、和name更改为label和value,就像在es6中那样?
const countries = [
{"label": 1, "value": "Afghanistan"},
{"label": 2, "value": "Albania"},
{"label": 3, "value": "Algeria"},
{"label": 4, "value": "American Samoa"}
];发布于 2018-05-10 06:45:38
使用.map将一个数组转换为另一个数组,并为语法干扰最小的参数进行重构:
const countries = [
{"id": 1, "name": "Afghanistan"},
{"id": 2, "name": "Albania"},
{"id": 3, "name": "Algeria"},
{"id": 4, "name": "American Samoa"}
];
const transformed = countries.map(({ id, name }) => ({ label: id, value: name }));
console.log(transformed);
如果需要,还可以转换为参数本身中的新属性名称:
const countries = [
{"id": 1, "name": "Afghanistan"},
{"id": 2, "name": "Albania"},
{"id": 3, "name": "Algeria"},
{"id": 4, "name": "American Samoa"}
];
const transformed = countries.map(({ id: label, name: value }) => ({ label, value }));
console.log(transformed);
https://stackoverflow.com/questions/50267076
复制相似问题