【问题标题】:Setting Double Array Values设置双精度数组值
【发布时间】:2021-04-02 12:00:54
【问题描述】:

我在尝试将值分配给空的二维数组时遇到错误。

上面写着Cannot set property '0' of undefined

为什么会这样,我该如何解决它,以便我可以将二维数组中的值分配给一个新的空二维数组?

var array = await data;
array = JSON.parse(array);

var activeArray = new Array();
var inactiveArray = new Array();

for (let i = 0; i < array.length; i++)
{
    if (array[i][2] == "Active")
    {
        activeArray[i][0] = array[i][0];
        activeArray[i][1] = array[i][1];
        activeArray[i][2] = array[i][2];
    }
    else
    {
        inactiveArray[i][0] = array[i][0];
        inactiveArray[i][1] = array[i][1];
        inactiveArray[i][2] = array[i][2];
    }
}

【问题讨论】:

  • 如果你向你展示数组值?
  • activeArray[i] 是一个有效字段,但您没有为它定义值(在您的情况下,它需要是另一个数组)。在访问第二维之前,您需要设置 activeArray[i] = new Array()
  • 谢谢,刚刚修好了。
  • "编辑:这是因为构造函数只创建一维数组。此问题已修复。感谢您的帮助。" - 将此作为答案。

标签: javascript arrays matrix typeerror


【解决方案1】:

这有效地解决了我的问题。

    var array = await data;
    array = JSON.parse(array);

    var activeArray = new Array();
    var inactiveArray = new Array();
    var activeArrayCounter = 0;
    var inactiveArrayCounter = 0;

    for (let i = 0; i < array.length; i++)
    {
        if (array[i][2] == "Active")
        {
            activeArray[activeArrayCounter] = new Array();
            activeArray[activeArrayCounter][0] = array[i][0];
            activeArray[activeArrayCounter][1] = array[i][1];
            activeArray[activeArrayCounter][2] = array[i][2];
            activeArrayCounter++;
        }
        else
        {
            inactiveArray[inactiveArrayCounter] = new Array();
            inactiveArray[inactiveArrayCounter][0] = array[i][0];
            inactiveArray[inactiveArrayCounter][1] = array[i][1];
            inactiveArray[inactiveArrayCounter][2] = array[i][2];
            inactiveArrayCounter++;
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多