#javascript #typescript
#javascript #typescript
Вопрос:
Я хочу изменить порядок ассоциативного массива другого типа, чтобы извлечь то же свойство. Итак, я попытался создать пример кода ниже.
const array1 = [{name:'john',age:25},{name:'Bob',age:33}];
const array2 = [{name:'Jen',age:35,id:1},{name:'Mera',age:31,id:2}];
const array3 = array1.concat(array2);
console.log(array3)
и этот результат кода похож на этот.
0: {name: "john", age: 25}
1: {name: "Bob", age: 33}
2: {name: "Jen", age: 35,id:1}
3: {name: "Mera", age: 31,id:2}
моя цель чуть ниже.
0: {name: "john"}
1: {name: "Bob"}
2: {name: "Jen"}
3: {name: "Mera"}
Не мог бы кто-нибудь просветить меня, пожалуйста?
Ответ №1:
Если вы просто хотите, чтобы значения имели name
свойство, то вам следует просто map()
заменить элементы массива на те, у которых есть только name
свойство. Например:
const array3 = [...array1, ...array2].map(({ name }) => ({ name }));
console.log(array3);
// [ { "name": "john" }, { "name": "Bob" }, { "name": "Jen" }, { "name": "Mera" } ]
Здесь я использую разброс в литералах массива вместо concat()
и деструктурирующее присваивание для сопоставления объектов. Если это выглядит странно, вы могли бы переписать его как:
const array4 = array1.concat(array2).map(value => ({ name: value.name }));
что делает практически то же самое. Надеюсь, это поможет; удачи!
Комментарии:
1. Вам это не нужно
.slice()
?