javascript - 检查字符串中的项目是否存在于数组 TS 中
问题描述
我有以下字符串
“0,2,4,5,6”
如何检查这些数字是否在数组中
let daysweek = [
{ id: '0', name: 'Domingo' },
{ id: '1', name: 'Segunda' },
{ id: '2', name: 'Terça' },
];
解决方案
在 中创建一组 id daysofweek
,使您可以轻松检查 id 是否在 中daysweek
。
let daysweek = [
{ id: '0', name: 'Domingo' },
{ id: '1', name: 'Segunda' },
{ id: '2', name: 'Terça' },
];
let days = "0,2,4,5,6";
let set = new Set(daysweek.map( _ => _.id ))
let found_days = days.split(",").filter( day => set.has(day) );
console.log(found_days);
这是 O(N)。AlwaysHelping 的答案和 MarkCball 的答案是 O(N 2 ),随着项目数量的daysweek
增加,情况会变得更糟。
推荐阅读
- javascript - 由 csv-parse 解析的对象的第一个属性不可访问
- html - 如何使 HTML 文件路径进入 css 样式表的不同文件夹
- codeblocks - 无法进入 CodeBlocks 论坛
- javascript - 在 laravel 中制作自动刷新跨度
- node.js - 如果解析器返回更多数据就可以了
- r - 使用带有颜色和线型的 geom_line 时如何避免之字形图
- arduino - Arduino - millis() 而不是 delay() 不起作用
- powershell - PowerShell .NET Core 找不到类型 Windows.Storage.StorageFile
- csv - 将 CSV 字符集从 Shift-JIS 转换为 UTF-8
- php - 用其他列关闭然后打开的情况下 MySQL