Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript console.log on dictionary循环正在返回函数而不是值_Javascript_Console.log - Fatal编程技术网

Javascript console.log on dictionary循环正在返回函数而不是值

Javascript console.log on dictionary循环正在返回函数而不是值,javascript,console.log,Javascript,Console.log,这张图片将有助于解释我的问题 这是下面代码中控制台日志的结果。第一个控制台日志打印出一个键值对数组作为epxected。第二个控制台日志按预期打印出值,但也打印出一整套函数。这看起来实际上在变量的值内,因此无法使用 我想在没有这种干扰的情况下循环键值数组。我以前从未遇到过这种情况。不幸的是,我不确定如何解决这个问题,对此我深表歉意 下面是代码,该函数与注释中链接的堆栈溢出答案略有不同 // http://stackoverflow.com/a/4656873/3774582 function

这张图片将有助于解释我的问题

这是下面代码中控制台日志的结果。第一个控制台日志打印出一个键值对数组作为epxected。第二个控制台日志按预期打印出值,但也打印出一整套函数。这看起来实际上在变量的值内,因此无法使用

我想在没有这种干扰的情况下循环键值数组。我以前从未遇到过这种情况。不幸的是,我不确定如何解决这个问题,对此我深表歉意

下面是代码,该函数与注释中链接的堆栈溢出答案略有不同

// 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,这同样有效,但是将[]改为{}更为简洁。