当我try 使用注释代码(多行Reduce语句)时,它工作得很好. 然而,当我try 使用单行REDUTE语句时,它不起作用. 我理解这是由于REDUTE语句中的Splice命令所致. 有没有人能建议如何克服这种情况,在一行中编写REDUTE语句?

function order(words){
    // ...
    let regex = /\d+/g;
    let matches = words.match(regex)

    // return words.split(' ').reduce((finalar, element, indx) => {
    //     console.log('matches', matches);
    //     finalar.splice(matches[indx] - 1, 0, element)
    //     console.log('element', element);
    //     return finalar;
    // }, []).join(' ');
    return words.split(' ').reduce((finalar, element, indx) => finalar.splice([matches[indx] - 1],0,element) , []);
}

console.log(order("is2 Thi1s T4est 3a"));  //Output: Thi1s is2 3a T4est

当我try 使用注释代码(多行Reduce语句)时,它工作得很好. 然而,当我try 使用单行REDUTE语句时,它不起作用. 我理解这是由于REDUTE语句中的Splice命令所致. 有没有人能建议如何克服这种情况,在一行中编写REDUTE语句?

推荐答案

您可以使用匹配值作为索引来映射拆分后的字符串.

function order(words) {
    const
        regex = /\d+/g,
        matches = words.match(regex);

    return words
        .split(' ')
        .map((_, i, a) => a[matches[i] - 1])
        .join(' ');
}

console.log(order("is2 Thi1s T4est 3a")); //Output: Thi1s is2 3a T4est

Javascript相关问答推荐

v—自动完成不显示 Select 列表中的所有项目

覆盖加载器页面避免对页面上的元素进行操作

无法避免UV:flat的插值:非法使用保留字"

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?

FindByIdAndUpdate在嵌套对象中创建_id

将字体样式应用于material -UI条形图图例

将字符串解释为数字;将其重新编码为另一个基数

由于http.get,*ngIf的延迟很大

Reaction-在同一页内滚动导航(下拉菜单)

如何在Java脚本中添加一个可以在另一个面板中垂直调整大小的面板?

在不使用AJAX的情况下将JavaScript数组值传递给Laravel控制器?

对象作为react 子对象无效(已找到:具有键的对象{type,props}).如果要呈现一个子级集合,请改用数组

扩展更新所有输入的CSSprops 的函数

将数据对象代码中缺失的属性添加到单个对象不起作用

如何在使用FOR AWAIT时从异步生成器中获取返回值

是否可以在同一路由路径中为不同的处理程序使用不同的express中间件?

React Native:Fetch API出现问题-无法从服务器上删除数据

即使当前目录中存在文件,ReadFileSync也找不到文件

onmouseover事件在Edge浏览器中突然不起作用

如何在使用会话时防止争用情况?