首页 > 解决方案 > 检查字符串中的项目是否存在于数组 TS 中

问题描述

我有以下字符串

“0,2,4,5,6”

如何检查这些数字是否在数组中

let daysweek = [
    { id: '0', name: 'Domingo' },
    { id: '1', name: 'Segunda' },
    { id: '2', name: 'Terça' },
];

标签: javascriptarraystypescriptfirebase

解决方案


在 中创建一组 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增加,情况会变得更糟。


推荐阅读