Можно ли как-то сократить запись с map?

Есть такая тривиальная запись:

doc.files = doc.files.map((file) => {
    file.checked = value;
    return file;
});

Можно ли как-то сократить, чтобы не использовать скобочки?


Ответы (4 шт):

Автор решения: vp_arth

Вы модифицируете объекты в оригинальном массив и даже не сохраняете ссылку на старый список. В этом случае map не нужен.

doc.files.forEach(file => file.checked = value);
→ Ссылка
Автор решения: nörbörnën

Метод map() создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.

В контексте этого кода, нет смысла в создании нового массива.

Правильнее сделать так:

doc.files.forEach((file) => file.checked = value);
→ Ссылка
Автор решения: Zhihar

сам недавно задавал (и отвечал) на подобный вопрос javascript: получить новый массив из старого массива с дополнительным параметром для каждого элемента

Мой вариант (под ваше задачу), правда запись в новый массив

new_files = doc.files.map(file => ({...file, 'checked': value}));

Посмотрите по ссылке - там и другие варианты были

→ Ссылка
Автор решения: Stepan Kasyanenko

Можно поизвращаться и сделать так. Но смысла в этом я не вижу.

let files = [{
  a: 1
}, {
  a: 2
}];
const value = false;
files = files.map((file) => (file.checked = value, file));

console.log(files);

→ Ссылка