#javascript #arrays #object
#javascript #массивы #объект
Вопрос:
У меня есть массив объектов, что-то вроде этого:
const sample = [
{
key:"key1",
title: "title1",
value: "value1"
},
{
key:"key2",
title: "title2",
value: "value2"
},
{
key:"key3",
title: "title3",
value: "value3"
}
]
Теперь я хочу добавить некоторое значение в конце каждого ключа заголовка объекта следующим образом:
const sample = [
{
key:"key1",
title: "title1 1",
value: "value1"
},
{
key:"key2",
title: "title2 2",
value: "value2"
},
{
key:"key3",
title: "title3 3",
value: "value3"
}
]
Я знаю, как изменить, добавить ключ, но не уверен, как добавить данные таким образом. пожалуйста, предложите какое-либо решение упомянутой проблемы.
Ответ №1:
Вы можете сопоставить объект, взяв индекс для значения.
const
sample = [{ key:"key1", title: "title1", value: "value1" }, { key:"key2", title: "title2", value: "value2" }, { key:"key3", title: "title3", value: "value3" }],
result = sample.map((o, i) => ({ ...o, title: o.title (i 1) }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Комментарии:
1. спасибо @Nina за ответ, просто хочу понять, поэтому мы создаем новый ключ «заголовок» и добавляем данные к существующему. таким образом, мы обновляем объекты, правильно ли это?
2. правильно, но вы получаете новые объекты без изменения существующих данных.
3. хорошо, понял. мы получим новый массив «результат» с обновленным объектом, поскольку мы используем map. Есть идеи о том, как обновить существующий массив измененными значениями?? Я имею в виду, если это возможно.
4. возьмите
sample.forEach((o, i) => o.title = i 1);
. это обновляет все объекты.5. если вы хотите изменить данные, вы можете вместо этого использовать индекс, зацикливающий все элементы.
Ответ №2:
const sample = [
{
key:"key1",
title: "title1",
value: "value1"
},
{
key:"key2",
title: "title2",
value: "value2"
},
{
key:"key3",
title: "title3",
value: "value3"
}]
let result = sample.map((x, i) => {
x.title = x.title ' ' (i 1);
return x;
});
console.log(result);
Ответ №3:
Надеюсь, это поможет 🙂 Преобразуйте в карте значение, как вы хотите! 🙂
const sample = [
{
key:"key1",
title: "title1 1",
value: "value1"
},
{
key:"key2",
title: "title2 2",
value: "value2"
},
{
key:"key3",
title: "title3 3",
value: "value3"
}
];
const other = sample.map(val => ({...val, title: val.title 'anything'}));
console.log(other);