HOWTO · JavaScript
JavaScript で 2つの配列を圧縮する
2つの配列を圧縮するために最もよく使用される簡単なメソッドは、JavaScript の map()メソッドです。Array.from()や Array.prototype.fill()などのメソッドも広く使用されています。
このページの内容
JavaScript には、特定の長さの 2つの配列を圧縮するための map() メソッドがあります。ただし、対応する 2つの配列が互いに一致しない場合、最小の長さの配列は、一致として undefined を出力します。
ここでは、map() メソッドとともに、Array.form() メソッドと Array.prototype.fill() メソッドのデモンストレーションが表示されます。このメソッドには、いつ何をすべきかを明示的に宣言しています。配列の長さが一致しません。
JavaScript で map() メソッドを使用して 2つの配列を圧縮する
map() 関数は、x 配列要素を呼び出し、それらを y 配列の要素にマップするコールバック関数を取ります。この簡単な圧縮方法も簡単に把握できます。
コードスニペット:
var x = [1, 2, 3];
var y = ['10', '20', '30'];
var z = x.map(function(e, i) {
return [e, y[i]];
});
console.log(z);
出力:
JavaScript で Array.from() メソッドを使用して 2つの配列を圧縮する
Array.from() メソッドのインスタンスでは、2つの配列があり、それらを矢印関数に渡します。関数は最初に長さを一致させ、次に 2つの異なる配列からの要素をマップします。また、欠落している要素が見つかった場合、対応するマップはその要素に対して undefined を出力します。
コードスニペット:
var x = [1, 2, 3, 4];
var y = ['10', '20', '30'];
var zip = (x, y) =>
Array.from(Array(Math.max(x.length, y.length)), (_, i) => [x[i], y[i]]);
console.log(zip(x, y));
出力:
Array.prototype.fill() メソッドを使用して 2つの配列を圧縮する
メソッド Array.prototype.fill() は Array.from() メソッドと同様に機能し、期待どおりに出力されます。
コードスニペット:
var x = [1, 2, 3];
var y = ['10', '20', '30', '40'];
const zip = (x, y) =>
Array(Math.max(x.length, y.length)).fill().map((_, i) => [x[i], y[i]]);
console.log(zip(x, y));
出力: