javascript - 动态使用 join 方法
问题描述
我有一个基于每个英文字母索引的参考数组:
let reference = [0, 2, 3];
以及一系列单词甚至短语:
let words = ["A", "C", "D"];
而且我想加入每个单词words array
来创建一个简单的句子,但考虑到单词之间的差距(只要参考数组中的值不是连续数字!),因此所需的输出将是:
A...C D // gaps filled with three dots
问题是我找不到使用join()
方法的解决方案!
任何帮助,将不胜感激
解决方案
您可以通过检查最后一个值和实际值的增量来减少数组。
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);
推荐阅读
- windows - gnuplot 给出关于大小的错误,但包含约束
- laravel - 路由在 laravel 中无法正常工作
- node.js - 我收到错误 [OnTurnError]:Unknown Error on SendActivity of bot
- python - Numpy:奇异矩阵
- javascript - 在 csv-parser 之后对象值未定义
- python - 在python中迭代另一个方法的方法
- c# - 将值插入数据网格而不显示它
- vb.net - 使用表格 1 中的 datagridview 单元格值过滤表格 2 中的 datagridview 2
- c++ - 无法将函数定义包含到另一个源文件中
- uikit - 如何手动将 SwiftUI 视图设置为第一响应者?