密钥

时间:2015-11-06 20:01:35

标签: javascript jquery json

我正在努力完成对我的事情,这是一项非常简单的任务。

我目前有一个外部汽车经销商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,很可能是因为它不可能,但我想要第二个意见,或者第三个意见。

2 个答案:

答案 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
}