【发布时间】:2021-02-03 10:13:31
【问题描述】:
那是我的对象标签:
tabs: [
{
visible: true,
title: 'tab 0',
products: [{id:1, send: true, delivered: true}, {id:1, send: true, delivered: true}],
},
{
visible: true,
title: 'tab 1',
products: [{id:11, send: true, delivered: false}, {id:21, send: true, delivered: true}],
}
],
const allDerivered = (product) => product.delivered;
options.tabs.forEach(function (projectProducts){
if (projectProducts.products.every(allDerivered)){
statusTabs = 'DELIVERED';
}
});
就像第一个产品选项卡都是派生的,它不会遍历所有选项卡对象。如何将 allDerived 函数应用于所有选项卡?
【问题讨论】:
-
你为什么有
async?您显示的代码中没有任何异步发生。 -
因为我只复制了一部分代码,它会做其他事情。我如何应用每个函数 forEach?
-
您正在为所有标签调用
allDelivered。更具体地说,您为所有选项卡和每个选项卡中的至少一个产品调用它。如果它为产品返回false,您将不会在该选项卡中为以后的产品调用该函数,因为您使用了every,当回调返回一个虚假值时它会停止。但我应该注意,一旦您设置了一次statusTabs = 'DELIVERED',为每个选项卡调用它似乎没有任何意义,因为此时代码不会做任何事情。 -
您正在应用所有这些功能。但是,我不清楚你期望发生什么。计算机将完全按照您的要求执行,但是,这似乎不是您想要它执行的操作。现在,它只是将值“DELIVERED”分配给一些(希望是)名为
statusTabs的变量。请描述应该发生的情况,以便我们为您提供帮助。
标签: javascript arrays express foreach