javascript - 在数组中查找值

标签 javascript jquery arrays google-maps-api-3

我试图查找一个对象是否包含某个值,然后让它决定下一步的操作。这是从 Google Maps API 返回的对象。这是从他们的 API 返回的确切示例。

数组

[{'long_name': 'United States', 'short_name': 'US'}, {'long_name': 'California', 'short_name': 'CA'}];

有条件/检查

if( $.inArray('US', array) == -1 ){

    alert('Your country is not supported.');

} else {
     alert('Your country is supported.');   
}

这不起作用,因为它只查看索引,而不查看我认为的值。如果数组中存在该值,查找并返回最干净、最快的方法是什么?

最佳答案

要查找匹配项,您可以使用 jQuery.grep() :

var res = $.grep(arr, function(item) {
    return item.short_name == 'US';
});

它返回一个数组,如果没有找到匹配项,该数组将为空。

或者,您可以使用 Array.prototype.filter() :

var res = arr.filter(function(item) {
    return item.short_name == 'US';
});

奖金

您可以进一步概括它:

function searchFunction(field)
{
    return function(arr, term) {
        return arr.filter(function(item) {
            return item[field] == term;
        };
    };
}

var searchByShortName = searchFunction('short_name');

if (searchByShortName(arr, 'US').length) {
    // ..
}

关于javascript - 在数组中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688189/

相关文章:

java - 如何在数组填满时结束的循环中随机填充二维数组

javascript - 在没有 jquery 的情况下处理元素外部的点击

PHP echo 在 POST 中不起作用

javascript - 无法从 Angular Controller 更新标签文本

arrays - delphi 7 项目属性

java - 在 java 中读取 char 数组时遇到问题。我究竟做错了什么?

javascript - 当深度链接到移动应用程序的非 http 方案时,如何避免混合/不安全的内容警告?

javascript - 迭代没有数组的嵌套 JSON 文件

javascript - 选择菜单中的字体很棒

javascript - 如何使用 CSS3/HTML5 或 Javascript 根据 div 位置创建 zoom 'windows' 显示图像的缩放部分?