javascript - jQuery - 如何在对象内的数组中查找特定的 JavaScript 对象?

标签 javascript jquery

我有一个 javaScript 对象:

var stuffObject = {
     stuffArray1 : [object1, object2, object3],
     stuffArray2 : [object4, object5, object6]
}

对象1到6看起来像这样:

object1 = {
   dataStuff : {
       stuffId: "foobar"
   }
}

我的问题:给定键“foobar”,如何使用 jQuery 从 stuffObject 中检索 object1?键“stuffId”始终具有唯一值。

最佳答案

您将无法绕过迭代集合来找到您正在寻找的对象。 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') );

关于javascript - jQuery - 如何在对象内的数组中查找特定的 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26502805/

相关文章:

javascript - 防止在 HighDPI 显示器上缩放图像

javascript - 如何使用 Javascript 更改子类型

javascript - JQuery-UI 使用包含时可调整大小的顶部和右侧错误

javascript - AngularJS : Pass results from datepicker to ng-model

javascript - 在一个对象中找到一个为真的键并且匹配数组中的条目

JavaScript 对象文字表示法未按预期工作

php - PDO:使用 foreach 和 $_POST 定义参数

javascript - 在 Javascript 中将行追加到表中

javascript - 使用触发器将元素添加到 firebase 实时数据库

javascript - 谷歌地图 API 缩放条不显示