javascript - 搜索 javascript 对象中以特定开头的名称

标签 javascript jquery json search

我有一个如下所示的 json 对象,其中包含 id 到名称的映射:

   idToNamesMap =  {"1":"name5","2":"name6","3":"name7","4":"name8"} 

现在我想在此 id-to name 映射对象中搜索名称。例如,搜索并返回以字符串“name”开头的所有名称以及相应的 id。你能建议如何做到这一点吗?

<小时/>

我使用 jQuery 1.7。

最佳答案

如果我理解正确,您想要过滤以“name”开头的项目,然后翻转对象键/值:

var idToNamesMap =  {"1":"name5","2":"name6","3":"name7","4":"name8"},
searchPattern = /^name/;

function searchMap(map, pattern)
{
    var res = {};

    $.each(map, function(i, name) {
        if (pattern.test(name)) {
            res[name] = i;
        }
    });

    return res;
}

console.log(searchMap(idToNamesMap, searchPattern));

输出:

{"name5": "1", "name6": "2", "name7": "3", "name8": "4"}

另请参阅:jQuery.each()

关于javascript - 搜索 javascript 对象中以特定开头的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001402/

相关文章:

javascript - Angular - 将数据传递给嵌套指令

javascript - 鼠标移动使div平滑倒转

javascript - 将 &lt;textarea&gt; 数据获取到服务器上的 JSON 文件?

javascript - 无法通过动态导入访问对象属性。 Vue.js + ts

javascript - 存储 ASCII 艺术以用作简单 JavaScript 游戏中的角色。我可以将它存储在角色的对象中吗?

javascript - 如何自动重新加载 chrome 扩展程序?

javascript - 多次启动轨道 slider 的问题

c# - MVC4 验证不起作用

javascript - Ajax 请求当前路径请求 `text/html` 而不是 `application/json`

json - Powershell Invoke-RestMethod返回JSON