我正在努力完成对我的事情,这是一项非常简单的任务。
我目前有一个外部汽车经销商API,在html页面的标题中调用。页面底部是另一个外部.js文件,其中包含if then else语句列表,用于根据api中传递的汽车类型显示或隐藏页面的各个方面。
问题在于,无论我做什么来获取键值,它总是返回未定义,但如果我在控制台中调用autoCarList,我会得到以下内容。
Object {Honda: "Civic", Ford: "Escort", Toyota: "Camry"}
还有另一个名为getautoCarList()
的函数,如果我输入getautoCarList('Honda');
,我会回复Civic
。
我不明白的是,如果carType =='Civic'
然后相应地进行,我怎么说,本田将思域的价值变成一个变量并传递给我的if / then else语句列表。
我尝试过像
这样简单的事情var showCar = getAutoCarList('Honda');
和
showCar = autocarlist.Honda;
我一无所获。
在getAutoCarList()
内,他们已经在使用getAutoCarList = JSON.parse(results.arg);
此时我不知所措,但继续阅读JSON,很可能是因为它不可能,但我想要第二个意见,或者第三个意见。
答案 0 :(得分:0)
<击>如果击>
<击>getautoCarList();
正在返回对象
Object {Honda: "Civic", Ford: "Escort", Toyota: "Camry"}
那么你可以这样做: -
var model = getautoCarList().Honda; //-> "Civic"
或分配对象,然后从中调用。
var models = getautoCarList();
var honda = models.Honda; //-> "Civic"
var ford = models.Ford; //-> "Escort"
var toyota = models.Toyota; //-> "Camry"
击> <击> 撞击>
修改强>
在通过评论意识到我错误地阅读了这个问题之后,听起来您正在调用getAutoCarList('Honda');
和autocarlist.Honda;
之前已经进行了API调用或已经返回。如果API具有成功/完成功能,那么将代码放在那里。
你可以这样做,看看是否是这个问题: -
$(function() {
setTimeout(function(){
var car = getautoCarList('Honda');
// SHOW HONDA
if(car == 'Civic') {
$('#showhonda').show();
}
if(car == 'Camry') {
$('#showtoyota').show();
}
}, 5000);
});
这将在页面加载后5秒调用getautoCarList
和您的if
语句。
答案 1 :(得分:0)
要将函数的值转换为变量,只需指定它:
var carType = getautoCarList("Honda");
if (carType == "Civic") {
// do something
}