arrays - 无法正确循环数组条件失败-reactjs
问题描述
尝试使用 for loop 循环数组列表,但如果满足,则条件会失败。
如果有 2 个数组列表,则说 1 有数据,其他没有数据
它仅循环通过第一个数组,但不循环其他数组列表。
我只是检查值是否为空、未定义和 0。
如果数组列表没有值,我会弹出警报消息,但首先列出数据是否可用并且它退出循环但它没有检查其他值是否满足。
我能得到一些建议吗?请
这是我下面的代码
areWidgetsEmpty = (currentWidgetList) => {
for (let i = 0; i < currentWidgetList.length; i++) {
const widget = currentWidgetList[i];
switch (widget.widgetType) {
case WidgetTypes.venn: {
const CurrentWidgetRigthValue = widget.rightTargetValue;
const CurrentWidgetLeftValue = widget.leftTargetValue;
const CurrentWidgetRightText = widget.rightTarget;
const CurrentWidgetLeftText = widget.leftTarget;
return !CurrentWidgetRigthValue || !CurrentWidgetLeftValue || !CurrentWidgetRightText || !CurrentWidgetLeftText;
};
default:
return false;
}
}
}
当前小部件列表
0
:
{widgetId: "ee23235b-4034-4443-98fc-47b783610311", widgetName: "widget 0", widgetType: "venn", leftTarget: "PSHGMALE", rightTarget: "PSHGMALE", …}
1
:
{widgetId: "625927bf-bacb-447d-aeb5-517940293c12", widgetName: "Widget", widgetType: "venn", leftTarget: "", rightTarget: "", …}
解决方案
你可以试试这个。目前尚不清楚“空”的确切含义,但您可以定义一个nonEmpty
函数并使用它Array.every()
来检查数组中的所有项目是否满足函数中定义的条件。
const nonEmpty = ({
widgetType,
rightTarget,
leftTarget
}) => widgetType == 'venn' ? rightTarget && leftTarget : true
const areWidgetsEmpty = items => !items.every(nonEmpty)
const widgets = [{
widgetType: "venn",
leftTarget: "PSHGMALE",
rightTarget: "PSHGMALE"
}, {
widgetType: "other",
leftTarget: "",
rightTarget: ""
}]
console.log(areWidgetsEmpty(widgets))
推荐阅读
- html - 烧瓶:url_for 在一个实例中工作但在另一个实例中不工作
- python - 未能遍历列表以查询 DynamoDB
- javascript - 我的第一个 chrome 扩展程序获得权限错误以发布扩展程序。我在这里做错了什么?
- c - C char 输入无法按预期使用 switch 和 for 循环
- javascript - 如果通过按钮单击激活弹出屏幕,则不会显示它
- sql - 根据主机名限制 MS SQL 数据库上的 SQL 登录
- eclipse - 使用现有源代码重新安装 Eclipse
- css - 顺风侧边栏组件到 React
- ruby-on-rails - 另一个 Ruby on Rails Rake 资产:预编译错误
- c++ - C++ 值未从线程更新