Добавить другое значение в конце определенного значения ключа в объекте

#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);