如何动态填充(关联)数组

How to dynamically fill (associative) array

本文关键字:填充 关联 数组 动态 何动态      更新时间:2023-09-26

我需要的是,基于 changepos 的值(我们称这个值为 N,我想在机架元素中填充 punkt 的第 N 个位置。

机架中值的火虫输出示例

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()}
        ]}
}

不能在数组文本中放置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
    };
}

你也接到了一个电话给document.getElementById().value.trim(),对结果没有任何影响。我更改了它以设置一个变量,然后稍后在对象创建中使用它。

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: []
    }
    for (var i = 0; i < changePos /* -1 */; i++)
        racks[trimdevID][punkt][i] = {x:0, y:0};
    racks[trimdevID][punkt][changePos /* -1 */] = {
        x: $(this).index(),
        y: $(this).parent().index()
    }    
}

决定是否需要 -1。