javascript - 在代码中动态处理字符串和数组

标签 javascript angular typescript

堆栈ID的数据类型可以是数组或字符串。

在下面的代码中,stack[0].idArraystack[1].id是字符串。

问题是当 id 作为数组返回时 stackConfig 未定义。

我如何动态处理这个问题?

let stack = [{id:['stack1','stack2']},{id:'stack2'}]
let stackConfig = this.stackConfigs.find(c => c.id === selectionId);

最佳答案

你可以尝试这样的事情:

let stack = [{id:['stack1','stack3']},{id:'stack2'},{id:'stack4'}]
let selectionId = 'stack2';
let stackConfig = stack.find(c => { 
  if(Array.isArray(c.id)) { if (c.id.indexOf(selectionId) != -1) return true;}
  else { return c.id === selectionId }
  return false;
});
console.log(stackConfig);

关于javascript - 在代码中动态处理字符串和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49105894/

相关文章:

javascript - 使用 JavaScript 和 OpenCV 进行 QR 码检测 - 增强现实 Web 应用程序

javascript - 使用 jquery 添加和删除 div 不起作用

css - 如何单独设置 Angular Material 组件的样式?

angular - 从选项卡转到根页面

node.js - NestJS 基于接口(interface)注入(inject)自定义 TypeOrm 存储库

javascript - 为什么在 Javascript 中不鼓励在 while 语句中赋值?

javascript - 如何在 Parse JavaScript 中查询关系数据

javascript - Heroku 未在 JavaScript 应用程序中显示 CSS 更新

angular - 如何调试 Angular2/Typescript 中的 Observable 值?

angular - 如何在 WebPack 构建环境中将 CryptoJS 与 Angular 2 和 TypeScript 一起使用?