根据属性返回对象值

爱德华

我有一个包含多种动物的物体:

var toonimals = [ {name: 'Itchy', animal: 'mouse'}, {name: 'Stimpy', animal: 'cat'}, {name: 'Daffy', animal: 'duck'}, {name: 'Scratchy', animal: 'cat'}, {name: 'Ren', animal: 'dog'}, {name: 'Felix', animal: 'cat'}]

我只想返回只猫的动物的名字。我正在努力做到这一点。这是我的尝试:

var cats = []
function onlyCats(array) {
  if (toonimals.animal === 'cat') {
    cats.push(toonimals.name)
  }
  return cats
}
console.log(onlyCats(toonimals));

当前,它仅返回空数组,因此该.push()方法由于某种原因无法正常工作。

先感谢您。

马门

您必须遍历数组到达filter()动物。然后使用map()修改数组以返回名称:

var toonimals = [ {name: 'Itchy', animal: 'mouse'}, {name: 'Stimpy', animal: 'cat'}, {name: 'Daffy', animal: 'duck'}, {name: 'Scratchy', animal: 'cat'}, {name: 'Ren', animal: 'dog'}, {name: 'Felix', animal: 'cat'}];

function onlyCats(array) {
  return array.filter(a => a.animal === 'cat').map(a => a.name);
}
console.log(onlyCats(toonimals));

在您的帮助下forEach()

var toonimals = [ {name: 'Itchy', animal: 'mouse'}, {name: 'Stimpy', animal: 'cat'}, {name: 'Daffy', animal: 'duck'}, {name: 'Scratchy', animal: 'cat'}, {name: 'Ren', animal: 'dog'}, {name: 'Felix', animal: 'cat'}];

var cats = []
function onlyCats(array) {
  array.forEach(function(animal){
    if (animal.animal === 'cat') {
      cats.push(animal.name)
    }
  });
  return cats;
}
console.log(onlyCats(toonimals));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章