@fessss

Запись значения ключа из одного объекта в другой?

const arr = [
  {
    name: 'test1',
    koef: 1,
    id: 1,
    age: 23
  },
  {
    name: 'test2',
    koef: 1,
    id: 2,
    age: 23
  },
  {
    name: 'test3',
    koef: 2,
    id: 3,
    age: 23
  },
  {
    name: 'test4',
    koef: 2,
    id: 4,
    age: 23
  },
  {
    name: 'test5',
    koef: 3,
    id: 5,
    age: 23
  },
  {
    name: 'test6',
    koef: 3,
    id: 6,
    age: 23
  },
]


Допустим есть такой массив объектов.
Каким образом при переборки данного массива из объекта с test1 например записать в test6 значение koef?
то есть test6 должен выглядеть
{
    name: 'test6',
    koef: 1,
    id: 6,
    age: 23
  }
  • Вопрос задан
  • 131 просмотр
Решения вопроса 2
Seasle
@Seasle Куратор тега JavaScript
const arr = [
	{
		name: 'test1',
		koef: 1,
		id: 1,
		age: 23
	},
	{
		name: 'test2',
		koef: 1,
		id: 2,
		age: 23
	},
	{
		name: 'test3',
		koef: 2,
		id: 3,
		age: 23
	},
	{
		name: 'test4',
		koef: 2,
		id: 4,
		age: 23
	},
	{
		name: 'test5',
		koef: 3,
		id: 5,
		age: 23
	},
	{
		name: 'test6',
		koef: 3,
		id: 6,
		age: 23
	},
];

const createMap = (array, key) => new Map(array.map(entry => [entry[key], entry]));

const map = createMap(arr, 'name');
console.log(map);
/*
Map(6) {
  'test1' => { name: 'test1', koef: 1, id: 1, age: 23 },
  'test2' => { name: 'test2', koef: 1, id: 2, age: 23 },
  'test3' => { name: 'test3', koef: 2, id: 3, age: 23 },
  'test4' => { name: 'test4', koef: 2, id: 4, age: 23 },
  'test5' => { name: 'test5', koef: 3, id: 5, age: 23 },
  'test6' => { name: 'test6', koef: 3, id: 6, age: 23 }
}
*/
map.get('test6').koef = map.get('test1').koef;
console.log(map);
/*
Map(6) {
  'test1' => { name: 'test1', koef: 1, id: 1, age: 23 },
  'test2' => { name: 'test2', koef: 1, id: 2, age: 23 },
  'test3' => { name: 'test3', koef: 2, id: 3, age: 23 },
  'test4' => { name: 'test4', koef: 2, id: 4, age: 23 },
  'test5' => { name: 'test5', koef: 3, id: 5, age: 23 },
  'test6' => { name: 'test6', koef: 1, id: 6, age: 23 }
}
*/
Ответ написан
Stalker_RED
@Stalker_RED
Допустим найти элемент с именем test6 и найти элемент с именем test1, и присвоить значение.
arr.find(e=>e.name==='test6').koef = arr.find(e=>e.name==='test1').koef

Это конечно не оптимальный алгоритм, в лучшем случае можно обойтись и одним перебором.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@McBernar
Arr[5].koef = arr[0].koef
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы