Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组内容上循环以比较值_Javascript_Arrays - Fatal编程技术网

Javascript 在数组内容上循环以比较值

Javascript 在数组内容上循环以比较值,javascript,arrays,Javascript,Arrays,我认为我做的一切都是对的,但我不明白为什么我的代码总是返回false。当使用(库存和字符串)调用时,我得到的结果都是false,尽管中的值不同 创建一个名为shouldWeOrderThisCandy的函数,该函数接受库存数组 一种特殊类型的糖果(串) 如果库存数量小于周平均值,则返回true,否则返回false let inventory = [ { candy: "Twizzlers", inStock: 180, weeklyAverage: 200 }, {

我认为我做的一切都是对的,但我不明白为什么我的代码总是返回false。当使用(库存和字符串)调用时,我得到的结果都是false,尽管中的值不同

创建一个名为shouldWeOrderThisCandy的函数,该函数接受库存数组 一种特殊类型的糖果(串)

如果库存数量小于周平均值,则返回true,否则返回false

let inventory = [
  { candy: "Twizzlers", inStock: 180, weeklyAverage: 200 },
  { candy: "Sour Patch Kids", inStock: 90, weeklyAverage: 100 },
  { candy: "Milk Duds", inStock: 300, weeklyAverage: 170 },
  { candy: "Now and Laters", inStock: 150, weeklyAverage: 40 }
]
              

function shouldWeOrderThisCandy(inventory, []){
  for (i = 0; i < inventory.length; i++){
    if (inventory.weeklyAverage < inventory.inStock){
      return true;  
    } else {
      return false;
    }
  }
};
let inventory=[
{candy:“twizzler”,库存:180,每周平均:200},
{candy:“酸补丁儿童”,库存:90,每周平均:100},
{糖果:“牛奶袋”,库存:300,每周平均:170},
{candy:“现在和以后”,库存:150,每周平均:40}
]
函数应为我们订购此糖果(库存,[]){
对于(i=0;i

如何返回true?

我发现您的代码中存在问题。Inventory是一个列表,您正在使用Inventory.yourproperty访问属性,该属性不正确。相反,像这样使用,你应该得到正确的结果

if (inventory[i].weeklyAverage < inventory[i].inStock){
 return true;  
方法:

void shouldWeOrderThisCandy()
    {
        List<Invenory> inventories = new List<Invenory>() 
                                        { new Invenory { candy= "Twizzlers", inStock= 180, weeklyAverage= 200},
                                        new Invenory { candy= "Sour Patch Kids", inStock= 90, weeklyAverage= 100},
                                        new Invenory { candy= "Milk Duds", inStock= 300, weeklyAverage= 170},
                                        new Invenory { candy= "Now and Laters", inStock= 150, weeklyAverage= 40} };

        foreach (var inventory in inventories)
        {
            if (inventory.weeklyAverage < inventory.inStock)
            {
                //write logic to add order
            }
        }
    }
void应该我们订购thiscandy()
{
清单存货=新清单()
{new Invenory{candy=“twizzler”,inStock=180,weeklyaaverage=200},
新因维诺{candy=“Sour Patch Kids”,inStock=90,weeklyaaverage=100},
新Invenory{candy=“Milk Duds”,库存=300,每周平均值=170},
新因维诺{candy=“Now and Laters”,inStock=150,weeklyAverage=40};
foreach(存货中的var存货)
{
if(inventory.weeklyAverage
您的代码中有一些错误,您在第一个循环后立即从循环返回,而您需要调查每个糖果,如果我没有弄错的话。。。检查下面的代码,阅读注释


UPD:添加了只指定一个糖果的方法

const inventory=[
{candy:“twizzler”,库存:180,每周平均:200},
{candy:“酸补丁儿童”,库存:90,每周平均:100},
{糖果:“牛奶袋”,库存:300,每周平均:170},
{candy:“现在和以后”,库存:150,每周平均:40}
]
const shouldWeOrderThisCandy=(库存,str)=>{
//设置一些对象以存储所有DB值结果
const result={};
//环路
for(设i=0;ilog(shouldworderthiscandy(inventory))嘿,欢迎来到StackOverflow!:)

这里的第一个问题是,您从未从For循环中的
清单
-数组中读取当前对象,但始终尝试访问数组本身的
周平均值
,该数组不具有此属性。:)

因此,if条件会导致比较
undefined

可以通过如下方式拉出值来修复此问题:

函数应为OrderThisCandy(库存,[]){
对于(i=0;i
但是,这将始终只检查数组中的第一个糖果,然后立即从函数返回,从而取消for循环

不太确定你是想让循环检查每一个糖果还是一个特定的。但如果需要所有Candy的状态,则不应在for循环中返回,而应将值保存在对象中,例如:

函数应为OrderThisCandy(库存,[]){
const candyNeedsOrderMap={};
对于(i=0;i
但是,如果您需要某个特定糖果的值,可以通过以下方式实现:

函数应为我们订购此糖果(库存,candyName){
const candy=inventory.find(current=>current.candy==candyName);
返回candy.weeklyAverage
我不知道你的意思, 我添加了一个新列来存储每一行的结果

let inventory=[
{candy:'Twizzler',库存:180,每周平均:200},
{candy:《酸补丁的孩子们》,inStock:90,每周平均:100},
{糖果:'牛奶哑巴',库存:300,每周平均:170},
{candy:'现在和以后',库存:150,每周平均:40},
];
函数shouldWeOrderThisCandy(库存、糖果){
const行=inventory.find(item=>item.candy==candy);
if(行周平均值<行库存){
返回true;
}否则{
返回false;
}
}

log(应该订购此糖果(库存“牛奶袋”)尝试
库存[i]。属性
-您引用了数组本身,而不是索引
i
处的值,谢谢,但现在一切都返回true。我不明白当调用(库存,“twizzler”)预期:true得到:true时,测试通过了什么。调用时测试通过
void shouldWeOrderThisCandy()
    {
        List<Invenory> inventories = new List<Invenory>() 
                                        { new Invenory { candy= "Twizzlers", inStock= 180, weeklyAverage= 200},
                                        new Invenory { candy= "Sour Patch Kids", inStock= 90, weeklyAverage= 100},
                                        new Invenory { candy= "Milk Duds", inStock= 300, weeklyAverage= 170},
                                        new Invenory { candy= "Now and Laters", inStock= 150, weeklyAverage= 40} };

        foreach (var inventory in inventories)
        {
            if (inventory.weeklyAverage < inventory.inStock)
            {
                //write logic to add order
            }
        }
    }