I have an Array, say something like that:
var array = [{something:"a"},{something:"b"},{something:"c"}]
我现在想获取包含"b"
的Object。我该如何做?
在此之前,我尝试使用array.filter
和array.find
结合includes
方法查找,但我无法找到在数组中查找对象内部字符串而不仅仅是在数组中查找字符串的方法。
I have an Array, say something like that:
var array = [{something:"a"},{something:"b"},{something:"c"}]
我现在想获取包含"b"
的Object。我该如何做?
在此之前,我尝试使用array.filter
和array.find
结合includes
方法查找,但我无法找到在数组中查找对象内部字符串而不仅仅是在数组中查找字符串的方法。
let resultWithSomethingB = array.filter(element => element.something === 'b')[0];
undefined
。 - VLAZundefined
。 - VLAZvar array = [{something:"a"},{something:"b"},{something:"c"}];
// Filter array based on .something
console.log(array.filter(a => { return a.something === "b" }))
array.filter
:
let newObject = null;
const newArray = array.filter(function(item) {
// Return an item if the something property is a "b"
return item.something === "b";
});
if (newArray.length > 0) {
// Returns the first element
newObject = newArray[0];
}
// Use the newObject
array.find(x => x.something.includes("b"))
用于部分匹配,或者使用array.find(x => x.something === "b")
进行精确匹配。 - VLAZfilter
和find
都将元素传递到回调函数中。数组元素是您的对象,所以现在您需要做的就是访问该对象的特定属性。就像https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter中的示例使用`length`一样,您想要使用b
。 - CBroe