我想在javascript中创建一个结构。我有两个信息,我想使用,例如:
array[1] = new Struct();
array[1].name = "parameter-name";
array[1].value = "parameter-value";
array[2] = new Struct();
array[2].name = "parameter-name2";
array[2].value = "parameter-value2";
这可以在具有不同值的不同页面上,可能是在我的数组中的元素上,可能是2-20。
稍后,在我的通用javascript中,我想解析数组并继续我的参数,例如:
for(i=1 to length_of_my_array) {
_tag.array[i].name = array[i].value;
}
我如何用纯javascript实现这一点呢?谢谢你的任何提示!
发布于 2010-12-14 01:16:17
只要你不想要任何花哨的特性,在JavaScript中创建这样的结构就很容易。实际上,如果您将new Struct()
替换为以下代码,您发布的代码几乎可以正常工作:
array[1] = {};
这将创建一个空对象,您可以在其中放置任何您想要的属性,例如name
和value
。
要创建一个数组,您可以这样做:
var array = []; // empty array
// object literal notation to create your structures
array.push({ name: 'abc', value: 'def' });
array.push({ name: 'ghi', value: 'jkl' });
...
并遍历数组:
for (var i = 0; i < array.length; i++) {
// use array[i] here
}
发布于 2010-12-14 01:36:41
了解有关您试图解决的问题的更多信息将是一件好事。
我不认为JavaScript中有一个叫做Struct的对象,除非你定义了一个。
我想你要找的是一个JavaScript对象,而不是结构。有许多方法可以创建新对象,它们可以嵌套在数组中或其他对象中。
myArray[0] = new Object();
myArray[0].name = "parameter-name";
myArray[0].value = "parameter-value";
myArray[1] = new Object();
myArray[1].name = "parameter-name2";
myArray[1].value = "parameter-value2";
注意,我以几种方式更改了您的代码: 1.将“数组”命名为"myArray“,以澄清我们引用的是一个特定的数组。2. myArray的第一个实例为0。在Javascript中,数组从0开始。3.将Struct改为Object。
myarray = [
{
"name":"parameter-name",
"value":"parameter-value"
},
{
"name":"parameter-name2",
"value":"parameter-value2"
}
];
这是做同样事情的另一种语法。它使用“文字表示法”来指定数组(方括号)和对象(花括号)。
for(var i = 0; i < myArray.length; i++) {
for(key in myArray[i]) {
alert(key + " :: " myArray[i][key]);
}
}
这将在数组中循环,并针对对象的每个属性向您发出警告。
alert(myArray[0]['value']) //parameter-value
myArray[0]['value'] = "bar";
alert(myArray[0]['value']) //bar
还可以为每个对象的每个属性分配一个新值。
发布于 2010-12-14 01:22:53
您可以在纯JavaScript/json中定义数组和泛型对象:
var array = []; // empty array
array.push({name: 'parameter-name', value: 'parameter-value'});
array.push({name: 'parameter-name2', value: 'parameter-value2'});
console.log(array);
// Output:
// [Object { name="parameter-name", value="parameter-value2"}, Object { name="parameter-name2", value="parameter-value2"}]
您也可以像这样定义相同的数组:
var array = [
{name: 'parameter-name', value: 'parameter-value'},
{name: 'parameter-name2', value: 'parameter-value2'}
];
就遍历数组而言:
for (var i = 0; i<array.length; i++) {
var elem = array[i];
console.log(elem.name, elem.value);
}
// Outputs:
// parameter-name parameter-value2
// parameter-name2 parameter-value2
https://stackoverflow.com/questions/4431459
复制相似问题