#javascript #arrays
#javascript #массивы
Вопрос:
У меня есть CSV-файл с некоторыми данными, и для каждой строки я разделяю его на запятую, чтобы получить массив vals
.
Теперь я хочу перейти vals
в функцию, но «сгладить» ее (без изменения функции, потому что она используется в другом месте)
function foo(x, y, z) {
return x*y*z:
}
var vals = [1, 3, 4];
//want a shortcut to this (this would be a nightmare with like 20 values)
foo(vals[0], vals[1], vals[2]);
Редактировать:
Извините, я упустил большую деталь. Мне нужна только часть массива, например, первые 10 элементов массива из 12 элементов. Любой ярлык для этого?
Комментарии:
1. В JavaScript вам не нужно указывать
var
для аргументов.function foo(x, y, z)
работает нормально.
Ответ №1:
Используйте оператор распространения; если вы используете es6.
var vals = [1,2,34,5]
foo(...vals)
Или вы также можете использовать apply
function foo(a,b,c,d,e) {
console.log(a,b,c,d,e)
}
var vals = [1,2,3,4,5]
foo.apply(null, vals)
Ответ №2:
во-первых, вам не нужны var
параметры,
во-вторых, вы можете использовать оператор распространения
function foo(x, y, z) {
return x * y * z;
}
var vals = [1, 3, 4];
console.log(foo(...vals));
ссылка: оператор распространения