把多个数组[{src: “a“,name: “2“,},{src: “b“,name: “3“,},{src: “c“,name: “4“,}]用lodash重组成新的数组

要使用lodash来将多个数组(虽然在你的例子中只有一个数组,但我们可以假设你希望将这个数组分割成多个较小的数组,并给每个数组分配一个id),我们可以编写一个函数来手动实现这个逻辑,因为lodash本身没有直接提供这样的函数。不过,我们可以利用lodash的一些工具函数来简化过程。

但首先,需要注意的是,你的原始数组并不是一个包含多个数组的数组,而是一个包含多个对象的数组。因此,我将假设你想要根据某种条件(比如对象的数量或者某种属性)来将这个数组分割成多个较小的数组,并给每个数组分配一个唯一的id

以下是一个使用lodash来实现这个功能的示例:

const _ = require('lodash');

function splitArrayWithIds(array, chunkSize) {
  // 使用lodash的chunk函数将数组分割成多个小块
  const chunks = _.chunk(array, chunkSize);

  // 使用lodash的range函数生成一个ID数组
  const ids = _.range(1, chunks.length + 1);

  // 使用lodash的zip和map函数将ID和对应的数组组合起来
  // 注意:zip会将多个数组对应位置的元素组合成新的数组,所以我们需要先转换ids为数组数组
  const result = _.map(_.zip(ids, chunks), ([id, arr]) => ({ id, arr }));

  return result;
}

// 示例数组
const originalArray = [
  { src: "a", name: "2" },
  { src: "b", name: "3" },
  { src: "c", name: "4" },
  // 假设我们想要更多元素来展示分割效果
  { src: "d", name: "5" },
  { src: "e", name: "6" }
];

// 调用函数,假设我们想要每个子数组包含2个元素
const newArray = splitArrayWithIds(originalArray, 2);

console.log(newArray);
// 输出:
// [
//   { id: 1, arr: [{ src: 'a', name: '2' }, { src: 'b', name: '3' }] },
//   { id: 2, arr: [{ src: 'c', name: '4' }, { src: 'd', name: '5' }] },
//   { id: 3, arr: [{ src: 'e', name: '6' }] }
// ]

在这个示例中,splitArrayWithIds函数接受一个数组array和一个整数chunkSize作为参数。它使用_.chunk函数将数组分割成多个小块,每个小块包含chunkSize个元素(除了最后一个块可能包含更少的元素)。然后,它使用_.range函数生成一个从1开始的ID数组,这些ID将用于标识每个小块。最后,它使用_.zip_.map函数将ID和对应的数组组合成一个新的对象数组,并返回这个数组。

请注意,这个示例假设你想要根据数组的长度和指定的chunkSize来均匀地分割数组。如果你的分割逻辑更加复杂(比如基于对象的某个属性),你可能需要编写更复杂的逻辑来确定如何分割数组。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值