es6 Array Сокращение использования функции и разделения строк

Возможно, вы столкнулись с ограничениями post_max_size или upload_max_filesize .

Вы можете изменить их в php.ini (post_max_size должно быть больше, чем upload_max_filesize )

-1
задан Eno Augustine 16 January 2019 в 01:14
поделиться

1 ответ

Это (ab) использование оператора запятой, который берет список разделенных запятыми выражений, оценивает первое (ие) выражение (я), отбрасывает их, а затем все (...) разрешается до значения конечного выражения , Обычно это делается только при автоматической минимизации IMO, потому что синтаксис выглядит запутанным.

.reduce там

return titles.reduce((obj, title, index) => ((obj[title] = 
 values[index]), obj), {});

эквивалентно

return titles.reduce((obj, title, index) => {
  obj[title] = values[index];
  return obj;
}, {});

, что имеет гораздо больше смысла - он превращает массив названий (например, ['foo', 'bar']) и массив значений (например, ['fooVal', 'barVal']) и использует .reduce для преобразования их в один объект, { foo: 'fooVal', bar: 'barVal' }.

Первым аргументом обратного вызова .reduce является начальное значение аккумулятора (второй аргумент .reduce) или значение, которое было возвращено на последней итерации - приведенный выше код передает {} в качестве начального значения, назначает свойство объекту и возвращает объект на каждой итерации. .reduce - это обычно наиболее подходящий метод для превращения массива в объект, но если вы более знакомы с forEach, код эквивалентен

const obj = {};
titles.forEach((title, index) => {
  obj[title] = values[index];
});
return obj;
[ 1120] Хотя оператор запятой может быть полезен при игре в код, это, вероятно, не то, что следует использовать при попытке написать хороший читаемый код.

0
ответ дан CertainPerformance 16 January 2019 в 01:14
поделиться
Другие вопросы по тегам:

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