javascript - JS/jQuery : Filter object properties by array

标签 javascript arrays

让我们看一个 JS 对象示例(又名“关联数组”):

var zoo = {
  monkey: { legs: 4, color: "black" },
  fish: { legs: 0, color: "yellow" },
  turtle: { legs: 4, color: "green" },
  emu: { legs: 2, color: "gray" },
};

现在我想检索水生动物的嵌套对象(也称为“子数组”)。是否有标准的 JS/jQuery 构造或函数来按数组过滤对象属性(“按数组索引数组”),即类似:

var aquatic = zoo["fish", "turtle"];

结果显然应该是{ { Legs: 0, color: "yellow"}, { Legs: 4, color: "green"} }

或者 for 循环是这里最简单的解决方案吗?

最佳答案

您可以使用map()并返回对象数组。

var zoo = {
  monkey: { legs: 4, color: "black" },
  fish: { legs: 0, color: "yellow" },
  turtle: { legs: 4, color: "green" },
  emu: { legs: 2, color: "gray" },
};
var aquatic = ["fish", "turtle"];

var result = aquatic.map(e => zoo[e]);
console.log(result)

关于javascript - JS/jQuery : Filter object properties by array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43341564/

相关文章:

javascript - 为什么使用console.profile()时无法得到正确答案?

Java创建新对象

arrays - 按空单元格对单元格列进行排序而不重新调整单元格形状

javascript - 检查 javascript 数组中的字符串元素

javascript - 从外部调用react组件

javascript - 提前两个月停止吗?

javascript - select2 from append 不起作用

php - 使用 AJAX 和 SQL 实时监控数据库更新

堆深拷贝上的 C++ 轮数组

python - 如何将 2 个一维数组转换为一个一维数组,但两个值都应位于一个元素内