Вам не обойти итерацию по набору, чтобы найти объект, который вы ищете. jQuery не может с этим справиться. Его целью является манипулирование DOM. Если вы хотите, чтобы функциональность имела дело с объектами, наборами, списками и т. Д., Проверьте lodash.
Я написал функцию для решения проблемы. Надеюсь, это понятно.
var stuffObject = {
stuffArray1 : [{dataStuff: {stuffId: 'foobar'}}, {dataStuff: {stuffId: 'foo'}}, {}],
stuffArray2 : [{}, {dataStuff: {stuffId: 'bar'}}, {}]
}
function getObjByStuffId(stuffObject, stuffId) {
var key, arr, i, obj;
// Iterate over all the arrays in the object
for(key in stuffObject) {
if(stuffObject.hasOwnProperty(key)) {
arr = stuffObject[key];
// Iterate over all the values in the array
for(i = 0; i < arr.length; i++) {
obj = arr[i];
// And if it has the value we are looking for
if(typeof obj.dataStuff === 'object'
&& obj.dataStuff.stuffId === stuffId) {
// Stop searching and return the object.
return obj;
}
}
}
}
}
console.log('foobar?', getObjByStuffId(stuffObject, 'foobar'));
console.log('foo?', getObjByStuffId(stuffObject, 'foo'));
console.log('bar?', getObjByStuffId(stuffObject, 'bar'));