Javascript 从具有自定义结构的对象内的for循环添加值
以下是我需要的对象结构:Javascript 从具有自定义结构的对象内的for循环添加值,javascript,Javascript,以下是我需要的对象结构: var states = { 'countryCode1' : { 'stateCode1' : 'stateName1', 'stateCode2' : 'stateName2', .... } 'countryCode2' : { 'stateCode1' : 'stateName1', 'stateCode2' : 'stateName2', .... } ................................. }; 在这个循
var states = {
'countryCode1' : { 'stateCode1' : 'stateName1', 'stateCode2' : 'stateName2', .... }
'countryCode2' : { 'stateCode1' : 'stateName1', 'stateCode2' : 'stateName2', .... }
.................................
};
在这个循环中,countryCode、stateCode和stateName有单独的值,如何使用上述结构构建对象
for (var loop = 0; loop < stateLineArray.length; loop++) {
lineArray = stateLineArray[loop].split(":");
countryCode = this.TrimString(lineArray[0]);
stateCode = this.TrimString(lineArray[1]);
stateName = this.TrimString(lineArray[2]);
// How can I add the values countryCode, stateCode and stateName in the states object, respecting it's structure?
// Spmething like this:
states[countryCode] = ....;
}
谢谢大家! 假设
trimstring
返回它应该返回的内容(如OP所说),这应该可以做到:
lineArray = stateLineArray[loop].split(":");
countryCode = this.TrimString(lineArray[0]);
stateCode = this.TrimString(lineArray[1]);
stateName = this.TrimString(lineArray[2]);
var obj = { stateCode : stateCode, stateName : stateName };
states[countryCode] = obj;
var states=[]
var stateLineArray=stateLineArray.split(“\\”);
for(var loop=0;loop
关键是创建一个新对象来保存尚未定义的每个countryCode。注意,我假设每个状态代码都是唯一的
var states = {};
for (var loop = 0; loop < stateLineArray.length; loop++) {
lineArray = stateLineArray[loop].split(":");
countryCode = this.TrimString(lineArray[0]);
stateCode = this.TrimString(lineArray[1]);
stateName = this.TrimString(lineArray[2]);
// How can I add the values countryCode, stateCode and stateName in the states object, respecting it's structure?
states[countryCode] = states[countryCode] || {}; //create new object if it does not exist
states[countryCode][stateCode] = stateName;
}
var states={};
for(var loop=0;loop
TrimString
该函数从何而来?还有什么是这个
你为什么需要它?那不是一个数组…只要忽略trimstring。。。我使用它来分割stateLineArray,并获得countryCode、stateCode和stateName@DanyD--我们不能忽略代码中非常相关的部分。他们返回正确的值吗?我的错误是没有以更一般的方式发布问题。理想是。。。我是否可以从对象内部的for循环生成3个不同的值并保留所需的结构?这将导致对象的外观如下:states={countryCode:{stateCode:'Eleuthera(last stateName)}}
,因为使用了文字名称。每个级别只创建一个属性,并反复重用。您需要使用括号样式的表示法:states[countryCode][stateCode]
var states = []
var stateLineArray = stateLineArray.split("|\\");
for (var loop = 0; loop < stateLineArray.length; loop++) {
lineArray = stateLineArray[loop].replace("\\", "", split(":"));
countryCode = this.TrimString(lineArray[0]);
stateCode = this.TrimString(lineArray[1]);
stateName = this.TrimString(lineArray[2]);
if (typeof(states[countryCode]) == 'undefined') {
states[countryCode] = [];
}
states[countryCode][statecode] = stateName;
}
var states = {};
for (var loop = 0; loop < stateLineArray.length; loop++) {
lineArray = stateLineArray[loop].split(":");
countryCode = this.TrimString(lineArray[0]);
stateCode = this.TrimString(lineArray[1]);
stateName = this.TrimString(lineArray[2]);
// How can I add the values countryCode, stateCode and stateName in the states object, respecting it's structure?
states[countryCode] = states[countryCode] || {}; //create new object if it does not exist
states[countryCode][stateCode] = stateName;
}