我想用来自先前输入的过滤后的值动态填充我的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');
这将返回一个空数组。
答案 0 :(得分:0)
该函数返回空数组的原因是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;
}