How to convert an array [aaa,bbb,ccc] to [[aaa],[bbb],[ccc]]

I have:

var array1 = [[aaa],[bbb]]; //SpreadsheetApp.getActiveSheet().getRange('A2:A').getValues();
var array2 = [[ccc],[vvv],[fff]]; //SpreadsheetApp.getActiveSheet().getRange('B2:B').getValues();

Then i concatenate arrays:

const newArray = [];

array1.forEach( function(item1) {
  array2.forEach( function(item2) {
    newArray.push(item1 + " " + item2)
  })
});

Result of this function:

Logger.log(newArray);
//[aaa ccc, aaa vvv, aaa fff, bbb ccc, bbb vvv, bbb fff]

How can I convert the result to the next?

[[aaa ccc], [aaa vvv], [aaa fff], [bbb ccc], [bbb vvv], [bbb fff]]

I need this to put values ​​in a column:

sheet.getRange('D2:D').setValues(newArray)

Otherwise, an error is displayed: Unable to convert Array to number [][]

Upvotes: 1

Views: 220

Answers (1)

TheMaster
TheMaster

Reputation: 50472

Push a array instead:

var array1 = [["aaa"],["bbb"]]; //SpreadsheetApp.getActiveSheet().getRange('A2:A').getValues();
var array2 = [["ccc"],["vvv"],["fff"]]; //SpreadsheetApp.getActiveSheet().getRange('B2:B').getValues();


const newArray = [];

array1.forEach( function(item1) {
  array2.forEach( function(item2) {
    newArray.push([item1 + " " + item2])
  })
});
console.log(newArray)

Upvotes: 2

Related Questions