Javascript console.log on dictionary循环正在返回函数而不是值
这张图片将有助于解释我的问题 这是下面代码中控制台日志的结果。第一个控制台日志打印出一个键值对数组作为epxected。第二个控制台日志按预期打印出值,但也打印出一整套函数。这看起来实际上在变量的值内,因此无法使用 我想在没有这种干扰的情况下循环键值数组。我以前从未遇到过这种情况。不幸的是,我不确定如何解决这个问题,对此我深表歉意 下面是代码,该函数与注释中链接的堆栈溢出答案略有不同Javascript console.log on dictionary循环正在返回函数而不是值,javascript,console.log,Javascript,Console.log,这张图片将有助于解释我的问题 这是下面代码中控制台日志的结果。第一个控制台日志打印出一个键值对数组作为epxected。第二个控制台日志按预期打印出值,但也打印出一整套函数。这看起来实际上在变量的值内,因此无法使用 我想在没有这种干扰的情况下循环键值数组。我以前从未遇到过这种情况。不幸的是,我不确定如何解决这个问题,对此我深表歉意 下面是代码,该函数与注释中链接的堆栈溢出答案略有不同 // http://stackoverflow.com/a/4656873/3774582 function
// http://stackoverflow.com/a/4656873/3774582
function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
if (hash[1]) {
vars[hash[0]] = hash[1];
}
}
return vars;
}
var url_parameters = getUrlVars();
console.log(url_parameters);
for (var key in url_parameters) {
var current_value = url_parameters[key];
console.log(current_value);
}
//http://stackoverflow.com/a/4656873/3774582
函数getUrlVars(){
var vars=[],散列;
var hashes=window.location.href.slice(window.location.href.indexOf('?')+1).split('&');
for(var i=0;i
您有一些库正在向对象的原型添加属性。它们仍然是可编辑的,但在console.log()
ing对象时不会显示,因为这只显示对象自身的属性
只有在url\u参数.hasOwnProperty(key)
时,才应该在循环中运行日志
此外,正如Pamblam所指出的,当你应该创建一个对象时,你正在定义一个数组。你有一些库正在向对象的原型添加属性。它们仍然是可编辑的,但在
console.log()
ing对象时不会显示,因为这只显示对象自身的属性
只有在url\u参数.hasOwnProperty(key)
时,才应该在循环中运行日志
另外,正如Pamblam指出的,当您应该创建一个对象时,您正在定义一个数组。var-vars=[]应该是var-vars={}
对象基本上是javascript中带有函数的关联数组。var vars=[]应该是var vars={}
对象基本上是javascript中带有函数的关联数组。
var vars=[]
应该是var vars={}
-如果url\u参数.hasOwnProperty(key){console.log(当前值);}@Pamblam提供预期行为,则创建的是对象,而不是数组!我将在我基于代码的答案中留下评论。请尝试使用if(url_parameters.hasOwnProperty(key))@Vatsal也可以,但是将[]改为{}更为精简。var vars=[]
应该是var vars={}
-如果url_parameters.hasOwnProperty(key){console.log(current_value)},那么您正在创建的是一个对象,而不是数组if url_parameters.hasOwnProperty(key)}
@Pamblam提供预期行为!我将在我基于代码的答案中留下评论。请尝试使用if(url_parameters.hasOwnProperty(key))@Vatsal,这同样有效,但是将[]改为{}更为简洁。