javascript - 每两个元素映射一个数组

标签 javascript arrays dictionary

假设我有一组服务对象

services: [{title: title, caption: caption},{title: title, caption: caption},{title: title, caption: caption},{title: title, caption: caption}]

最终结果是一个映射数组,每两个元素都在它自己的 div 中。

<div>
 <div>services[0]</div>
 <div>services[1]</div>
</div>
<div>
 <div>services[2]</div>
 <div>services[3]</div>
</div>

我无法全神贯注于如何实现这一目标?按每两个元素映射和拆分数组?将数组拆分为两个数组,然后映射?是不是一大早呢?是的。

最佳答案

是的,一种方法是按每两个元素对数组进行分组,但您可以使用 reduce 来做到这一点。

reduce 的回调 can actually take four arguments ,你可以用一个空数组初始化累加器,所以它最终看起来像这样:

const services = [{
  title: 'title0',
  caption: 'caption0'
}, {
  title: 'title1',
  caption: 'caption1'
}, {
  title: 'title2',
  caption: 'caption2'
}, {
  title: 'title3',
  caption: 'caption3'
}];

services
  .reduce((accumulator, currentValue, currentIndex, array) => {
    if (currentIndex % 2 === 0) {
      accumulator.push(array.slice(currentIndex, currentIndex + 2));
    }
    return accumulator;
  }, [])
  .forEach(p => console.log(p[0], p[1]));

关于javascript - 每两个元素映射一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49491452/

相关文章:

swift - 使用静态数据构建字典类 (Swift)

javascript - 在ajax中将数组元素作为数据发送

c++ - 如何实现最大堆

php - 带左连接的 SQL 查询结果和带 PHP 的结果数组

java - 如何将 <String, List<Object>> 的 Map 转换为 <Object, List<String>> 的 Map?

python - 带有列表的字典 : Fastest way to get the key corresponding to the minimum value of the fourth list item?

javascript - 如何在 Laravel 5.2 中使用 Bootstrap

javascript - 引用对象数组中的对象标题

javascript - 使用 MagicSuggest 将变量发送到服务器

java - 使用二维数组创建和打印乘法表?