我想迭代以下内容并输出一个结合了不同设置的字符串:
循环:
config : {
settings : {
width: 880,
height: 495,
byline: false,
title: false,
portrait: false
}
}
输出:
var output = '&height=495&width=880&title=false&byline=false&portrait=false',
我该怎么做?
答案 0 :(得分:6)
我不知道您是否明确要循环,但您只需使用jQuery.param
:
var output = "&" + $.param(obj.config.settings);
// I assumed `obj` contains `config`
顺序可能不同,但对于无关紧要的查询字符串。
答案 1 :(得分:2)
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字符串。如果您这样做,只需更改为output = output + val;
,从if
开始到else
结束。
答案 2 :(得分:1)
这个怎么样:
function print( obj ) {
return Object.keys( obj ).map( function ( name ) {
return '&' + name + '=' + obj[ name ];
}).join( '' );
}
用法:
var output = print( obj.config.settings );