领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

碎片时间学编程「203]:根据功能对数组元素进行分组

nixiaole 2024-11-14 18:35:11 知识剖析 22 ℃

创建一个元素数组,根据原始数组中的位置进行分组,并使用函数指定应如何组合分组值。


检查提供的最后一个参数是否是一个函数。


使用 Math.max() 获取参数中最长的数组。


使用Array.from() 方法创建具有适当长度的数组和映射函数以创建分组元素的数组。


如果参数数组的长度不同,undefined 则在找不到值的地方使用。


使用每个组的元素调用该函数。

JavaScript

const zipWith = (...array) => {
  const fn =
    typeof array[array.length - 1] === 'function' ? array.pop() : undefined;
  return Array.from({ length: Math.max(...array.map(a => a.length)) }, (_, i) =>
    fn ? fn(...array.map(a => a[i])) : array.map(a => a[i])
  );
};


示例

zipWith([1, 2], [10, 20], [100, 200], (a, b, c) => a + b + c); // [111, 222]
zipWith(
  [1, 2, 3],
  [10, 20],
  [100, 200],
  (a, b, c) =>
    (a != null ? a : 'a') + (b != null ? b : 'b') + (c != null ? c : 'c')
); // [111, 222, '3bc']

更多内容请访问我的网站:https://www.icoderoad.com

Tags:

最近发表
标签列表