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;
}