筛选 JS 对象以查找 Select2 数据数组



我想用来自上一个输入的过滤值动态填充我的 Select2 下拉列表。

var object =    [
{ 
London: [
"112233" : "Company 1",
"112244" : "Company 2",
],
Manchester: [
"112255" : "Company 3",
"112266" : "Company 4",
]
}
]

我想返回这样的数组:

var data = [
{
id: 112233,
text: 'Company 1'
},
{
id: 11223344,
text: 'Company 2'
}
];

为了简化此操作,假设city变量包含我的筛选条件。我有以下JS对象。我的函数没有按预期工作。

function getRelatedVenues(city) {
var venues = [];
for (var key in object.city)
{
venues.push({id:object.city[key],text:object.city[key]});
}
return venues;
}
var venueData = getRelatedVenues('London');

这将返回一个空数组。

该函数返回空数组的原因是object.city正在读取与文字键"city"对应的键处的值,这当然不存在。由于city是一个变量,因此您需要使用方括号表示法查找具有该值的键:object[city]

在推送到数组上的对象的id中也存在错误。总之,该职能应修改如下:

function getRelatedVenues(city) {
var venues = [];
for (var key in object[city])
{
venues.push({id:key,text:object[city][key]});
}
return venues;
}

最新更新