Javascript 循环遍历对象文字

Javascript Loop through Object Literal

本文关键字:文字 对象 遍历 循环 Javascript      更新时间:2023-09-26

我想遍历以下内容并输出一个组合不同设置的字符串:

循环遍历这个:

config : {
   settings : {
     width: 880,
     height: 495,
     byline: false,
     title: false,
     portrait: false
    }
}

并输出:

var output = '&height=495&width=880&title=false&byline=false&portrait=false',

我该怎么做?

我不知道

你是否明确想要循环,但你可以简单地使用 jQuery.param

var output = "&" + $.param(obj.config.settings);
// I assumed `obj` contains `config`

顺序可能不同,但对于无关紧要的查询字符串。

var attr, val, settings = config.settings,
    output, count = 0;
if ('undefined' !== typeof settings) {
    for (attr in settings) {
        val = settings[attr];
        if (0 === count) {
            output = output + val;
        } else {
            output = output + '&' + val;
        }
        count += 1;
    }
    console.log(output);
}

请注意,上面的代码添加了优化,其中您不会向第一个 var 添加&。我认为您不希望在 get var 字符串中使用它。如果这样做,只需从 if else 结束更改为 output = output + val; 即可。

这个怎么样:

function print( obj ) {
    return Object.keys( obj ).map( function ( name ) {
        return '&' + name + '=' + obj[ name ];
    }).join( '' );
}

用法:

var output = print( obj.config.settings );

现场演示:http://jsfiddle.net/w3D9M/