我有一个对象数组。每个对象都是一个自治市,有它的名称、替代拼写和标识号。
var munis = [
{
name: 'St. Louis Hills',
alt: 'Saint Louis Hills',
nhdNum: 992
},
{
name: 'Mount Pleasant',
alt: 'Mt. Pleasant',
nhdNum: 1004
}
];
在我的应用程序中,用户可以键入名称。然后我使用 Sugar.js 搜索此数组并返回与他们键入的内容匹配的特定对象,如下所示:
var theMatch = munis.find(function(el) {
return el.name === userInput || el.alt === userInput;
});
这很好用,但只允许我使用一种规范名称和一种替代拼写。我想要多个替代品,像这样:
{
name: 'Mount Pleasant',
alt: ['Mt. Pleasant','Mt Pleasant'],
nhdNum: 1004
}
但我不知道如何调整 Sugar 的 .find() 来搜索这个结构。谁能帮忙?
最佳答案
只需使用Array::indexOf
:
var theMatch = munis.find(function(el) {
return el.name === userInput ||
el.alt.indexOf(userInput) > -1;
});
关于javascript - 我如何使用 sugar.js 来搜索对象中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780479/