我有一个数组:
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
我无法更改数组的结构。我正在传递一个id参数 45
,我想获取该数组中该对象的'bar'
值。
如何在JavaScript或使用jQuery实现?
我有一个数组:
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
我无法更改数组的结构。我正在传递一个id参数 45
,我想获取该数组中该对象的'bar'
值。
如何在JavaScript或使用jQuery实现?
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
var bar = myArray.find(ob=>(ob.id == 45)).bar;
null
),给定array
和一个callback
函数,该函数对于“正确”的元素返回一个真值:function findElement(array, callback) {
var elem;
return array.some(function(e) {
if (callback(e)) {
elem = e;
return true;
}
}) ? elem : null;
});
请记住,这在IE8及以下版本中无法本地工作,因为它不支持some
。可以提供polyfill,或者始终使用经典的for
循环:
function findElement(array, callback) {
for (var i = 0; i < array.length; i++)
if (callback(array[i])) return array[i];
return null;
});
实际上更快更紧凑。但如果您不想重复造轮子,我建议使用像underscore或lodash这样的实用程序库。
最短的,
var theAnswerObj = _.findWhere(array, {id : 42});
const updatedData = myArrayOfObjects.filter((obj: any) => Object.values(obj).some((val: any) => {
if (typeof (val) == typeof ("str")) {
return val.toString().includes(Search)
} else {
return Object.values(val).some((newval: any) => {
if (newval !== null) {
return newval.toString().includes(Search)
}
})
}
}))
将“axesOptions”视为对象数组,其中对象格式为 {:field_type => 2, :fields => [1,3,4]}
function getFieldOptions(axesOptions,choice){
var fields=[]
axesOptions.each(function(item){
if(item.field_type == choice)
fields= hashToArray(item.fields)
});
return fields;
}
我找到数组索引的方法:
index = myArray.map((i) => i.id).indexOf(value_of_id);
item = myArray[index];
$(myArray).filter(function()
{
return this.id == desiredId;
}).first();
这将返回具有指定 Id 的第一个元素。
它还具有很好的 C# LINQ 格式优势。