Как выбрать определенный (переменный) столбец из скрипта приложений массива

#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