Javascript 给定一个对象数组,查找具有特定键的对象
给定一个对象数组,在JS中找到具有特定键的对象的最佳方法是什么 使用jQuery和下划线可以。我只是在寻找最简单/最少代码的答案 示例: 对象数组,其中每个对象都有一个“名称”。查找具有特定“名称”的对象Javascript 给定一个对象数组,查找具有特定键的对象,javascript,jquery,arrays,underscore.js,Javascript,Jquery,Arrays,Underscore.js,给定一个对象数组,在JS中找到具有特定键的对象的最佳方法是什么 使用jQuery和下划线可以。我只是在寻找最简单/最少代码的答案 示例: 对象数组,其中每个对象都有一个“名称”。查找具有特定“名称”的对象 var people=[{name:“A”},{name:“B”},{name:“C”}] 我当前的解决方案: 传入数组、键(例如“name”)和值(例如“C”) 可以使用下划线.js的函数,如下所示 console.log(_.where(people, { "name": "C"
var people=[{name:“A”},{name:“B”},{name:“C”}]代码>
我当前的解决方案:
传入数组、键(例如“name”)和值(例如“C”)
可以使用下划线.js的函数,如下所示
console.log(_.where(people, {
"name": "C"
}));
# [ { name: 'C' } ]
这将返回数组中的所有对象,这些对象与作为第二个参数传递的对象完全匹配。您可以使用下划线.js函数,如下所示
console.log(_.where(people, {
"name": "C"
}));
# [ { name: 'C' } ]
这将返回数组中的所有对象,这些对象与作为第二个参数传递的对象完全匹配。使用:
如果希望数组中没有匹配的对象,请使用:
使用:
如果希望数组中没有匹配的对象,请使用:
您应该使用jQuery
var people = [{name: "A"}, {name: "B"}, {name: "C"}];
var obj1= jQuery.grep(people,function(n,i){return (n.name=='A')})
您应该使用jQuery
var people = [{name: "A"}, {name: "B"}, {name: "C"}];
var obj1= jQuery.grep(people,function(n,i){return (n.name=='A')})
没有任何自定义库,您也可以这样做。请看下面的代码
var people=[{name:“A”},{name:“B”},{name:“C”}],
匹配=功能(元素){
返回元素。名称==“A”;
};
console.log(people.filter(match))代码>如果没有任何自定义库,也可以执行此操作。请看下面的代码
var people=[{name:“A”},{name:“B”},{name:“C”}],
匹配=功能(元素){
返回元素。名称==“A”;
};
console.log(people.filter(match))代码>我很惊讶在这里找不到明显的答案,因此:要使用下划线,请使用:
不过,这不需要下划线;JavaScript的数组类型有find
(从ES5开始):
从ES2015+开始,您可以使用箭头函数和分解结构使其更加简洁:
function getObject(myArray, searchKey, searchValue) {
return myArray.find(({[searchKey]: value}) => value === searchValue);
}
最后一个实例:
函数getObject(myArray、searchKey、searchValue){
返回myArray.find(({[searchKey]:value})=>value==searchValue);
}
const people=[{name:“A”},{name:“B”},{name:“C”}];
log(getObject(people,“name”,“C”)代码>我很惊讶在这里找不到明显的答案,因此:要使用下划线,请使用:
不过,这不需要下划线;JavaScript的数组类型有find
(从ES5开始):
从ES2015+开始,您可以使用箭头函数和分解结构使其更加简洁:
function getObject(myArray, searchKey, searchValue) {
return myArray.find(({[searchKey]: value}) => value === searchValue);
}
最后一个实例:
函数getObject(myArray、searchKey、searchValue){
返回myArray.find(({[searchKey]:value})=>value==searchValue);
}
const people=[{name:“A”},{name:“B”},{name:“C”}];
log(getObject(people,“name”,“C”)
您可能需要过滤器
。太糟糕了,ES6还没有真正得到支持:返回arr.find(el=>el[searchKey]==searchValue)
@Qantas94Heavy它仍在草稿中:(您可能需要过滤器
。太糟糕了,ES6还没有真正得到支持:返回arr.find(el=>el[searchKey]==searchValue);
@Qantas94Heavy它仍在草稿中:(谢谢@thefourtheye-计时器启动时我会接受答案。您是否知道如何从数组中删除此元素?似乎删除操作需要我知道数组中元素的索引。@DonnyP您可以使用。
,如其他答案所示,这将生成一个没有不需要的元素的新数组。因此,我们可以n放弃旧数组,开始使用新数组。谢谢@thefourtheye-计时器启动时,我会接受答案。您是否知道如何从数组中删除此数组?似乎删除需要我知道数组中元素的索引。@DonnyP您可以使用\uu.filter
,如其他答案所示,这将给出一个新数组没有不需要的元素。因此,我们可以抛弃旧数组,开始使用新数组。filter
仅适用于所有匹配的数组。若要仅查找一个匹配,则为。filter
仅适用于所有匹配的数组。若要仅查找一个匹配,则为。
function getObject(myArray, searchKey, searchValue) {
return myArray.find(function(entry) { return entry[searchKey] === searchValue; });
}
function getObject(myArray, searchKey, searchValue) {
return myArray.find(({[searchKey]: value}) => value === searchValue);
}