如何找到一个元素与参数作为选择和输出它在javascript?



我是javascript新手,遇到这样的问题。

例如。有这样一个列表变量

{
name: 'x',
attack: 50,
speed: 100,
hitpoint: 100,
},
{
name: 'y',
attack: 150,
speed: 80,
hitpoint: 180,
}

查找攻击值为150的变量,并将其返回到函数"findAMonsterByAttack"如果变量列表中没有匹配的变量,则使用"findamonsterbyattack"函数返回null

下面是我的代码:
function findAMonsterByAttack(monsters) {
var monsters = [
{
name: 'x',
attack: 50,
speed: 100,
hitpoint: 100,
},
{
name: 'y',
attack: 150,
speed: 80,
hitpoint: 180,
},
// ...
];
var isfree = monsters.every(function(course, index) {
return course.attack ===150;
});

我的想法是使用代码每检查课程和索引,然后返回如果attach = 150。但是我失败了。你能帮我拿这个箱子吗?非常感谢您的宝贵时间。

如果monsters是数组,则可以使用array。过滤器返回另一个数组,其中仅包含符合匹配条件的monsters

egattack === 150.

请注意,可以有多个匹配,因此这将返回一个包含所有匹配的monsters的数组,(或者如果没有monsters匹配则返回一个空数组)。

const monsters = [{
name: 'x',
attack: 50,
speed: 100,
hitpoint: 100,
},
{
name: 'y',
attack: 150,
speed: 80,
hitpoint: 180,
},
{
name: 'z',
attack: 150,
speed: 90,
hitpoint: 150,
}
]
const a150 = monsters.filter(m => m.attack === 150)
console.log(a150)

如果您只关心一个monster,您也可以使用array.find。但是这将返回第一个找到的monster和如果没有找到匹配的undefined

const monsters = [{
name: 'x',
attack: 50,
speed: 100,
hitpoint: 100,
},
{
name: 'y',
attack: 150,
speed: 80,
hitpoint: 180,
},
{
name: 'z',
attack: 150,
speed: 90,
hitpoint: 150,
}
]
const a150 = monsters.find(m => m.attack === 150)
console.log(a150)

注意:数组。every测试所有monsters是否满足条件并返回Boolean值。在您的示例中,这将返回false,因为所有monsters的攻击值为150。

这是你想要的吗?

function findAMonsterByAttack() {
var monsters = [
{
name: 'x',
attack: 50,
speed: 100,
hitpoint: 100,
},
{
name: 'y',
attack: 150,
speed: 80,
hitpoint: 180,
}
// ...
];
for ( m of monsters ) {
if ( m.attack == 150 )
return m
}
return "Monster with attack 150 not found"
}
console.log(findAMonsterByAttack())

相关内容

  • 没有找到相关文章

最新更新