javascript - 如何检查我的对象是否存在于 javascript 地图中?
问题描述
这是我的地图:
return (data.map(obj => `<div style="border-color:${obj.category.color}" class="circle"></div> ${obj.name}`)).join('<br>');
它运行良好,但在某些情况下,obj.category
不会退出。如果它不存在,我只想返回:
return (data.map(obj => `${obj.name}`)).join('<br>');
我试过了
var validate = data.map(obj => obj.category));
if(validate){
return (data.map(obj => `<div style="border-color:${obj.category.color}" class="circle"></div> ${obj.name}`)).join('<br>');
} else {
return (data.map(obj => `${obj.name}`)).join('<br>');
}
问题是我无法创建变量validate
,因为加载页面时出现控制台错误:
类型错误:obj.category 未定义
如果已定义,我无法进行验证
解决方案
data.map(obj => obj.category);
将返回真实的数组。
您可以使用三元运算符
return (data.map(obj => obj.category ? `<div style="border-color:${obj.category.color}" class="circle"></div> ${obj.name}` : `${obj.name}`)).join('<br>');
推荐阅读
- docker - 是否可以“安全扫描”运行已部署到 k8s 的 docker 容器?
- c++ - Qt JSON – 从子项查询
- react-native - React Native Picker 组件:如何设置插入符号的样式(右侧的小三角形)?
- android - kotlin android 的 gRPC:导入“google/protobuf/wrappers.proto”不起作用
- javascript - 如何使用 Request-Promise 将一个 API 的响应作为请求参数传递给另一个 API
- angular - 如何强制 Angular App 获取最新的 dist
- symfony - 在symfony 4中将树枝数据传递给vue js
- php - 循环遍历具有数组值的会话变量
- vue.js - 路由进入后未加载Vue Child
- r - 使用 R 通过 API 更新 Google Tag Manager 容器:invalidArgument 错误