(Javascript)确定对象数组中是否包含numbervalue或小于numbervalue的数字
我有一个包含连续整数数组的对象数组和一个整数值:(Javascript)确定对象数组中是否包含numbervalue或小于numbervalue的数字,javascript,arrays,Javascript,Arrays,我有一个包含连续整数数组的对象数组和一个整数值: const worlds=[ {levelNumber:[0,1,2,3,4,5]}, {levelnumber:[6,7,8,9,10]}, {levelnumber:[11,12,13,14]}]; 常数达到9级; 我想确定每个世界对象中是否包含达到级别或低于该级别的值,并在每个对象上设置一个锁定值 我试过这个: worlds.forEach(world=>{ world.locked=!world.levelNumber.includes
const worlds=[
{levelNumber:[0,1,2,3,4,5]},
{levelnumber:[6,7,8,9,10]},
{levelnumber:[11,12,13,14]}];
常数达到9级;
我想确定每个世界对象中是否包含达到级别
或低于该级别的值,并在每个对象上设置一个锁定值
我试过这个:
worlds.forEach(world=>{
world.locked=!world.levelNumber.includes(达到级别);
}
);
但是它“锁定”了所有的世界,除了包含实际达到的等级的世界。我希望worlds[0]已锁定设置为false,即使达到的级别为例如10。您可以使用检查所有级别数字是否大于达到的级别,并将结果分配给
锁定的
参数
const worlds=[
{levelNumber:[0,1,2,3,4,5]},
{levelnumber:[6,7,8,9,10]},
{levelnumber:[11,12,13,14]}
];
常数达到9级;
forEach(world=>
world.locked=world.levelNumber.every(n=>n>reachedLevel)
)
console.log(worlds)
您的键名有拼写错误。前两个元素使用levelnumbers
,但最后一个是levelnumbers
。另外,javascript没有contains
函数,而是使用indexOf
,如果元素不存在,则返回-1
。首先,检查javascript对象。它包含levelnumbers
和levelnumbers
,两者不相同
第二,不要使用包含
而使用包含
,那么包含什么呢
const worlds=[
{levelNumber:[0,1,2,3,4,5]},
{levelnumber:[6,7,8,9,10]},
{levelnumber:[11,12,13,14]}];
常数达到9级;
forEach(world=>{
world.locked=world.levelNumber.includes(reachedLevel)
}
);
console.log(worlds)代码>您可以查看数字的最小值,然后对照您的值进行检查
const
世界=[{levelNumbers:[0,1,2,3,4,5]},{levelNumbers:[6,7,8,9,10]},{levelNumbers:[11,12,13,14]},
达到9级;
worlds.forEach(world=>world.locked=Math.min(…world.levelNumber)>reachedLevel);
console.log(worlds)代码>
。作为控制台包装{max height:100%!important;top:0;}
您有想要的结果吗?我总是混淆包含和包含。。。所以我的意思是包含-大小写输入错误只是输入错误,因为我没有复制/粘贴任何代码。看起来你已经得到了@NinaScholzFirefox仍然保留contains
,但它是非标准的,在大多数其他环境中都不是一个选项。然而,有一个包含,“而不是包含使用include和what is contains虽然?”它是最初为该功能提出的方法的名称。然而,MooTools库已经更改了本机原型,添加了自己版本的contains
,这与ES提案不兼容。结果是contains
propoasal被更改为includes
。Firefox还使用了一个(现在)非标准的contains
方法来添加数组,但不应该依赖它。因此,我们可能最终使用了contains
而不是includes
,contains
更有意义。