#javascript
Вопрос:
Удивительно, но я не нашел ответа на выбор столбца n
из массива, где n
находится переменная. Я нашел отличный код, в котором я могу ввести фиксированное значение n
, как в следующем примере:
var data = [[3.0, 11.0, 101.0, "Submarine"], [4.0, 11.0, 102.0, "Boats"], [5.0, 11.0, 103.0, "duh"], [6.0, 11.0, 104.0, "cars"]]; //example array called data
var newArray = data.map(function(column){
return column[3];});
Затем Logger.log(newArray)
возвращает 3-ю колонку по желанию, [Подводная лодка, Лодки, дух, автомобили].
Мой вопрос в том, как превратить это в функцию столбца переменной n
? Я пытался:
function newArrayFunction(n){ data.map(function(column){
return column[n];});
Но, к сожалению, функция newArrayFunction(3), например, возвращает «null».
Есть какие-нибудь предложения? Спасибо!
Ответ №1:
Ваша функция ничего не возвращает, следовательно, null. попробуйте
function newArrayFunction(n){ return data.map(function(column){
return column[n]})}
Комментарии:
1. @KimHopkins если это решило ваше дело, пожалуйста, отметьте это как принятый ответ.
Ответ №2:
Поправьте меня, если я ошибаюсь, но я считаю, что другие ответы возвращают столбец в виде строки. Чтобы вернуть столбец в виде столбца, я изменил код @Nizar Zizoune следующим образом:
function newArrayFunction(data,n){
return data.map(function(column){
return [column[n]]
})
}
Просто добавьте скобки.
Ответ №3:
const data = [[3.0, 11.0, 101.0, "Submarine"], [4.0, 11.0, 102.0, "Boats"], [5.0, 11.0, 103.0, "duh"], [6.0, 11.0, 104.0, "cars"]];
function newArrayFunction(n=3) {
const oA = data.map(function (r) {return r[n];});
Logger.log(oA);
return oA;
}
Execution log
9:18:34 AM Notice Execution started
9:18:34 AM Info [Submarine, Boats, duh, cars]
9:18:35 AM Notice Execution completed