Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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 使用下划线.js在另一个对象中查找对象_Javascript_Underscore.js - Fatal编程技术网

Javascript 使用下划线.js在另一个对象中查找对象

Javascript 使用下划线.js在另一个对象中查找对象,javascript,underscore.js,Javascript,Underscore.js,使用,获取名为“Ted”的对象的ID的最简单方法是什么 示例: var people = { 1: { name: "Ted" }, 2: { name: "Will" }, 3: { name: "James" } } var personId; for (id in people) { if (people[id].name === "Ted") { personId = id; } } 原始JS解决方案: var people = { 1: { nam

使用,获取名为“Ted”的对象的ID的最简单方法是什么

示例:

var people = {
  1: { name: "Ted" },
  2: { name: "Will" },
  3: { name: "James" }
}
var personId;

for (id in people) {
  if (people[id].name === "Ted") {
    personId = id;
  }
}
原始JS解决方案:

var people = {
  1: { name: "Ted" },
  2: { name: "Will" },
  3: { name: "James" }
}
var personId;

for (id in people) {
  if (people[id].name === "Ted") {
    personId = id;
  }
}
与:

Blender建议使用以下简化版本:

var personId = _.findKey(people, { name: 'Ted' });

如果有多个id具有相同的名称,我建议您使用原始JS解决方案,该解决方案为您提供一个只保留属性匹配的内部对象:

var people = {
  1: { name: "Ted" },
  2: { name: "Will" },
  3: { name: "James" },
  4: { name: "Ted" }
};
var keys = Object.keys(people);
result = {};
keys.forEach(item => {if (people[item].name === "Ted")result[item] = {name: people[item].name}});
console.log(result); // { '1': { name: 'Ted' }, '4': { name: 'Ted' } }

你看过文件了吗?有一个。有一个。但是,我尝试了findKey,但无法使用语法。您指的是“键”或“属性名”,而不是“ID”。还有一个小问题,但在“raw JS”版本中,一旦找到匹配项,就应该打破循环。@DonnyP向我们展示您尝试过的语法。