Javascript 如何动态填充(关联)数组
我需要的是,基于changepos的值(我们称这个值为N,我想填充racks元素中punkt的第N个位置) 机架中值的firebug输出示例Javascript 如何动态填充(关联)数组,javascript,jquery,arrays,multidimensional-array,javascript-objects,Javascript,Jquery,Arrays,Multidimensional Array,Javascript Objects,我需要的是,基于changepos的值(我们称这个值为N,我想填充racks元素中punkt的第N个位置) 机架中值的firebug输出示例 PMS02 Object { punkt=[3], label="slow one"} label "slow one" punkt [Object { x="1", y="3"}, Object { x="1", y="4"}, Object { x="1", y="5"}] 0 Object { x="1", y=
PMS02
Object { punkt=[3], label="slow one"}
label
"slow one"
punkt
[Object { x="1", y="3"}, Object { x="1", y="4"}, Object { x="1", y="5"}]
0
Object { x="1", y="3"}
1
Object { x="1", y="4"}
2
Object { x="1", y="5"}
JS代码:
changePos= 4; // 4 is an example here
if(!(trimdevID in racks))
{
alert("Defining...");
document.getElementById('devLabel').value.trim()
racks[trimdevID] = {
label: document.getElementById('devLabel').value.trim(),
punkt: [{
x: $(this).index(),
y: $(this).parent().index()}]}
}
我尝试的是:
if(!(trimdevID in racks))
{
alert("Defining...");
document.getElementById('devLabel').value.trim()
racks[trimdevID] = {
label: document.getElementById('devLabel').value.trim(),
punkt: [
for(var i=0;i<changepos-1;i++){
{
x: 0,
y: 0}
}
{
x: $(this).index(),
y: $(this).parent().index()}
]}
}
if(!(机架中的trimdevID))
{
警报(“定义…”);
document.getElementById('devLabel').value.trim()
机架[trimdevID]={
标签:document.getElementById('devLabel').value.trim(),
朋克:[
这里的例子是(var i=0;ichangePos=4;4
如果(!(机架中的trimdevID))
{
警报(“定义…”);
document.getElementById('devLabel').value.trim()
机架[trimdevID]={
标签:document.getElementById('devLabel').value.trim(),
朋克:[]
}
对于(变量i=0;i
决定是否需要-1。不能在数组文本中放置for
循环。请使用循环指定给数组元素
if(!(trimdevID in racks))
{
alert("Defining...");
var label = document.getElementById('devLabel').value.trim();
var punkt = [];
for (var i = 0; i < changepos-1; i++) {
punkt[i] = {x: 0, y: 0};
}
punkt[changepos] = {
x: $(this).index(),
y: $(this).parent().index(),
};
racks[trimdevID] = {
label: label,
punkt: punkt
};
}
if(!(机架中的trimdevID))
{
警报(“定义…”);
var label=document.getElementById('devLabel').value.trim();
var punkt=[];
对于(变量i=0;i
您还调用了document.getElementById().value.trim()
这对结果没有任何影响。我将其更改为设置一个变量,然后在稍后的对象创建中使用该变量。您实际需要更改哪些值?标签
?整个punkt
或其中只有一个元素?只有一个元素来自punkt,在第n个位置(changepos)我还认为将其他元素定义为0更安全,我的意思是:例如,如果我需要更改第二个元素,我会将第一个元素填充为{x:0,y:0}。这实际上是在“我尝试了什么”代码中循环使用的:O@BeNdErR在python中,可能是在js no way=)中不是,得到一个语法错误:(谢谢你,伙计,这正是我想要的,有了这个,我也可以省去for循环,直接把它放在位置上,而下面的那些将是未定义的!谢谢你也改变了;在此之后,索引变成了racks[trimdevID].punkt[changingPos]={x:$(this.index(),y:$(this.parent().index()}
if(!(trimdevID in racks))
{
alert("Defining...");
var label = document.getElementById('devLabel').value.trim();
var punkt = [];
for (var i = 0; i < changepos-1; i++) {
punkt[i] = {x: 0, y: 0};
}
punkt[changepos] = {
x: $(this).index(),
y: $(this).parent().index(),
};
racks[trimdevID] = {
label: label,
punkt: punkt
};
}