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 方法时,确保两个数组的长度必须相同;否则,你将得到结果未定义

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"]]

此外,等效映射将为任何缺失的元素输出未定义

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