私は3列10列の配列range
を持っています。配列の2つの列を新しい配列に連結します
列1の内容を列2に連結し、それらを新しい範囲dataEnome
にプッシュするにはどうすればよいですか?
私は、次のループを使用していますが、それは非常に効率的ではありません。
var dataEnome =[];
for (i=0; i<range.length; i++){
dataEnome.push(range[i][0])+(range[i][1]);
};
私は3列10列の配列range
を持っています。配列の2つの列を新しい配列に連結します
列1の内容を列2に連結し、それらを新しい範囲dataEnome
にプッシュするにはどうすればよいですか?
私は、次のループを使用していますが、それは非常に効率的ではありません。
var dataEnome =[];
for (i=0; i<range.length; i++){
dataEnome.push(range[i][0])+(range[i][1]);
};
あなたはarray.map
APIを使用することを検討することができます。
例:
var range =
[
[ 'col1.a', 'col2.1', 'c' ],
[ 'col1.b', 'col2.2', '3' ],
[ 'col1.c', 'col2.3', '6' ],
[ 'col1.d', 'col2.4', '9' ],
[ 'col1-e', 'col2.5', '1c' ],
[ 'col1-f', 'col2.6', '6c' ],
[ 'col1-g', 'col2.7', '7c' ],
[ 'col1-h', 'col2.8', '8c' ],
[ 'col1-i', 'col2.9', '9c' ],
[ 'col1-j', 'col2.10', '0c' ],
];
var dataEnome =range.map(row => { return row[0] + row[1]});
console.log(dataEnome);
map
ためのより例示的用途に
。
参照:これはあなたを助ける
var dataEnome =[];
for (i=0; i<range.getValues().length; i++){
dataEnome.push(range.getValues()[i][0]+range.getValues()[i][1]);
};
希望:あなたが列
両方から各レコードを連結したい場合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
あなたはこのような何かを行うことができます。
ありがとうございました。
... dataEnome.push(range[i][0])+(range[i][1]);
はおそらく壊れた構文を備えていないほか... はそれがdataEnome.push(range[i][0] + range[i][1]);
またはdataEnome.push(range[i][0].concat(range[i][1]));
すべきではない...私は効率的ではないことがOPのソリューションを考慮していません。
一つだけ
function collectConcatenatedFirstTwoRowColumns(collector, row) {
collector.push(row[0].concat("/", row[1]));
return collector;
}
var
range = [
["0, 0", "0, 1", "0, 2"],
["1, 0", "1, 1", "1, 2"],
["2, 0", "2, 1", "2, 2"],
["3, 0", "3, 1", "3, 2"],
["4, 0", "4, 1", "4, 2"],
["5, 0", "5, 1", "5, 2"]
],
dataEnome = range.reduce(collectConcatenatedFirstTwoRowColumns, []);
console.log(dataEnome);
あなたは範囲が実際にどのように見えるかの例を持っていますか...再利用可能な、より機能的なスタイルにそれを変換できますか? –
私は実際のデータを使用しませんでしたが、私の解決策を見ました –