#javascript #arrays #loops #object
#javascript #массивы #циклы #объект
Вопрос:
У меня есть массив объектов, которые необходимо добавить id
в javascript.
function addKey(obj){
return obj.map(e=>({...e, id:index})
}
var obj=[
{name: "s1"},
{name: "s2"}
]
Expected Output
[
{name: "s1", id:0 },
{name: "s2", id:1 }
]
Ответ №1:
используя object.assign, вы можете добавить ключ
var obj = [{
name: 's1'
}, {
name: 's2'
}];
var result = obj.map(function(el,index) {
var o = Object.assign({}, el);
o.id = index;
return o;
})
console.log(result);
Комментарии:
1. Зачем использовать
Object.assign
, когда OP уже использовал синтаксис распространения? например{ ...e, id: index }
Ответ №2:
Вы можете добавить id
свойство, добавив индекс Array.prototype.map
обратного вызова.
const
obj = [
{ name: "s1" },
{ name: "s2" }
],
offset = 2;
console.log(obj.map((item, id) => ({ ...item, id: id offset })));
Если вы хотите изменить объект на месте (без загрязнения памяти), вы можете попробовать следующее:
const
obj = [
{ name: "s1" },
{ name: "s2" }
],
offset = 2;
obj.forEach((item, index) => item.id = index offset)
console.log(obj);
Комментарии:
1. как насчет того, когда я хочу начать подсчет или идентификатор со статического числа, например 2
2. @d’reaper Я добавил смещение, чтобы показать, как его добавить.