我有一个API请求后返回的对象数组。它采用以下形式:

[{
    id: 12,
    slug: '050e8e8db93ae08ed46cd57017ef9617',
    name: 'Test Badge'
}, {
    id: 13,
    slug: '78ed09b1f2aae29ab30915ac9f167bfa',
    name: 'Test Badge'
}]

我需要测试键x上的值slug,但是我的对象数组长数百个对象。有没有一种方法可以测试一个值而无需手动遍历所有对象?

最佳答案

好吧-您必须循环播放。但至少JavaScript对您有用:

var arr = [
    {
        id: 12,
        slug: '050e8e8db93ae08ed46cd57017ef9617',
        name: 'Test Badge'
    },
    {
        id: 13,
        slug: '78ed09b1f2aae29ab30915ac9f167bfa',
        name: 'Test Badge'
    }
];

var arrWithValue = arr.filter(function(el){ return el.slug === value; });
arrWithValue仅包含具有正确值的数组元素。

当您不得不经常访问这些数据时,最好循环一次并使用slug作为key保存每个对象。
var sortedObj = {};
for(var i = 0, len = arr.length; i < len; ++i){
    sortedObj[arr[i].slug] = arr[i];
}

// access the object with sortedObj['someSlug']

关于javascript - 测试JS数组中的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27907213/

10-11 22:44
查看更多