我有一个var
包含:
var flags = {USA, Brazil, Germany, Canada};
我可以得到每个键的数量的值
如何获取数字 {1, 2, 3} 而不将它们设置在var
并从 1 开始
var flags = {USA, Canada, Germany};
编辑2:
我还有另一个var
没有,
var flags = 'USA Brazil Germany Canada';
我有一个var
包含:
var flags = {USA, Brazil, Germany, Canada};
我可以得到每个键的数量的值
如何获取数字 {1, 2, 3} 而不将它们设置在var
并从 1 开始
var flags = {USA, Canada, Germany};
编辑2:
我还有另一个var
没有,
var flags = 'USA Brazil Germany Canada';
采用
var flags = ['USA','Brazil','Germany','Canada'];
然后你可以迭代它
$.each(flags, function(key, value){
var yourkey = key + 1; // Because you want 1 indexed
}
如果你想要一个字符串数组,你需要使用方括号:
var flags = ["USA", "Canada", "Germany"];
/* or
var flags = 'USA Brazil Germany Canada'.split(' ');
*/
然而,为了从索引中获取数字,您需要添加 1,因为数组索引是从零开始的:
$.each(flags, function(index, value){
$('#flags').append('<span>' + value + (index+1) + '</span> ')
});
输出:
USA1
Canada2
Germany3
var flags = ['USA', 'Canada', 'Germany'];
$.each(flags, function(i, country){
$('#flags').append('<span>' + country + (i += 1) + '</span> ')
});
var flags = ['USA', 'Canada', 'Germany'];
$.each(flags, function(key, value){
$('#flags').append('<span>' + (key+1) + ' '+ value + '</span> ')
});
用字符串设置数组
您的代码无效。
var flags = {USA, Brazil, Germany, Canada};//error
请查看如何使用对象或数组并选择一个而不是混合。这将解决您遇到的问题。正如其他人在答案中指出的那样,您将能够使用字符串数组来匹配索引,或者使用对象中的索引来匹配字符串。
这基本上意味着将标志更改为
var flags = ["USA","Brazil","Germany","Canada"];
但是,根据您使用的标志数量,您可能希望使用数据结构。
var flagHolder = (function(){
var flags = [];
var flagIndex = 0;
function addFlag(name){
var flag = {};
flag.name = name;
flag.index = flagIndex++;
flags.push(flag);
return flag.index;
}
function getFlag(index){
return flags[index];
}
function getAllFlags(){
return flags;
}
return {
getAllFlags: getAllFlags,
getFlag: getFlag,
addFlag: addFlag
};
})();
可以这样使用:
var USA = flagHolder.addFlag("USA");
var Canada = flagHolder.addFlag("Canada");
var Germany = flagHolder.addFlag("Germany");
var Brazil = flagHolder.addFlag("Brazil");
//Get Single
$("#flag").html(flagHolder.getFlag(USA).name);
//Get All
$.each(flagHolder.getAllFlags(), function(key,value){
$('#flags').append('<span>' + (key+1) + '</span> ');
});
这是一个演示:http: //jsfiddle.net/YQSHr/7/