首页 > 解决方案 > 动态使用 join 方法

问题描述

我有一个基于每个英文字母索引的参考数组:

let reference = [0, 2, 3]; 

以及一系列单词甚至短语:

let words = ["A", "C", "D"];

而且我想加入每个单词words array来创建一个简单的句子,但考虑到单词之间的差距(只要参考数组中的值不是连续数字!),因此所需的输出将是:

A...C D // gaps filled with three dots

问题是我找不到使用join()方法的解决方案!

任何帮助,将不胜感激

标签: javascript

解决方案


您可以通过检查最后一个值和实际值的增量来减少数组。

var reference = [0, 2, 3],
    result = reference.reduce((r, v, i, { [i - 1]: last }) =>
        r + (r && (i && v - last > 1 ? '...' : ' ')) + (v + 10).toString(36).toUpperCase(), '');

console.log(result);


推荐阅读