JavaScript 中壓縮陣列

Shiv Yadav 2023年1月30日 2022年7月18日
  1. 在 JavaScript 中使用 map 方法壓縮陣列
  2. 在 JavaScript 中使用 Array.from 方法壓縮陣列
JavaScript 中壓縮陣列

在 JavaScript 中,有時我們希望壓縮兩個陣列。在本教程中,我們將研究使用 JavaScript 重新整理兩個集合。

必須編寫 Python zip 函式的 JavaScript 對應項。換句話說,我們需要在給定許多等長集合的情況下建立一個對陣列。

在 JavaScript 中,我們可以通過多種方式壓縮兩個陣列,例如使用 map() 方法、Array.from() 方法和 Array.prototype.fill() 方法。

在 JavaScript 中使用 map 方法壓縮陣列

JavaScript 中的 map() 函式壓縮了兩個一定長度的陣列。但是,如果兩個陣列的長度不匹配,則會導致 undefined

let a = [9, 8, 7];
let b = ["1", "2", "3"];
let zip = a.map(function (e, i) {
  return [e, b[i]];
});
console.log(zip);

執行程式碼

map() 方法接受的回撥函式將呼叫 a 陣列的元素以及與 a 集合對映的 b 陣列的元素。學習如何以這種方式拉上拉鍊也很簡單。

輸出:

[[9, "1"], [8, "2"], [7, "3"]]

使用 map 方法時,確保兩個陣列的長度必須相同;否則,你將得到結果undefined

let a = [9, 8, 7, 6];
let b = ["1", "2", "3"];
let zip = a.map(function (e, i) {
  return [e, b[i]];
});
console.log(zip);

這裡演示

你可以看到 ab 陣列的長度不同。

輸出:

[[9, "1"], [8, "2"], [7, "3"], [6, undefined]]

在 JavaScript 中使用 Array.from 方法壓縮陣列

let a = [9, 8, 7, 6];
let b = ["90", "80", "70", "60"];
let zip = (a, b) =>
  Array.from(Array(Math.max(a.length, b.length)), (_, i) => [a[i], b[i]]);
console.log(zip(a, b));

執行程式碼

Array.from 方法的例項中將存在兩個陣列;它們將被髮送到箭頭函式。匹配長度後,該過程將對映來自兩個單獨陣列的專案。

輸出:

[[9, "90"], [8, "80"], [7, "70"], [6, "60"]]

此外,等效對映將為任何缺失的元素輸出undefined

let a = [9, 8, 7];
let b = ["90", "80", "70", "60"];
let zip = (a, b) =>
  Array.from(Array(Math.max(a.length, b.length)), (_, i) => [a[i], b[i]]);
console.log(zip(a, b));

這裡演示

輸出:

[[9, "90"], [8, "80"], [7, "70"], [undefined, "60"]]

Array.prototype.fill() 方法的工作原理與 Array.from() 方法相同。

let a = [7, 8, 9];
let b = ["70", "80", "90"];
let zip = (a, b) =>
  Array(Math.max(a.length, b.length))
    .fill()
    .map((_, i) => [a[i], b[i]]);
console.log(zip(a, b));

執行程式碼

輸出:

[[7, "70"], [8, "80"], [9, "90"]]
Author: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

相關文章 - JavaScript Array