javascript - Typescript 数组映射 vs 过滤器 vs?

标签 javascript typescript

这是一个 typescript 方法,它想要遍历一个字符串数组,并返回另一个字符串数组,其中,匹配正则表达式的字符串(格式类似于“[la la la]”的字符串将变成“la la la”和不匹配的字符串被丢弃。所以如果我的输入数组是:

"[x]", "x", "[y]"

变成

"x", "y"

这是我的代码:

questions(): string[] {
    var regexp = /\[(.*)\]/;
    return this.rawRecords[0].map((value) => {
        console.log(value);
        var match = regexp.exec(value);
        if (match) {
            return match[1];
        }
    });
}

我最终得到这样的输出:

"x", undefined, "y"

因为“如果(匹配)”。编写此代码的正确 typescript /javascript 方法是什么?

最佳答案

只需过滤它们:

return this.rawRecords[0].map((value) => {
        console.log(value);
        var match = regexp.exec(value);
        if (match) {
            return match[1];
        }
    });
}).filter(x=>!!x);

关于javascript - Typescript 数组映射 vs 过滤器 vs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174085/

相关文章:

javascript - 带有下拉菜单的选项卡 Angular ui

php - 如何使用js在网络浏览器中 trim 图像并将其保存在服务器上?

javascript - 错误 : <toHaveBeenCalled> : Expected a spy, 但得到了功能

javascript - 带两个参数的回调 ES6 箭头函数 Angular2

javascript - 在 TypeScript 中重构单页 Web 应用程序

javascript - 拖动时从可拖动对象中删除 <a href> - jquery

javascript - 检查数据属性值是否等于字符串

javascript - 使用 grunt-ts 编译 typescript 时 require.js 和 sourcemaps 的问题

TypeScript Express 错误函数

typescript 使用条件类型推断构造函数参数