我想用来自上一个输入的过滤值动态填充我的 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;
}