如何将未定义的元素添加到数组?

时间:2013-12-03 13:27:06

标签: javascript jquery object undefined

这很简单,我想在数组中添加一个未定义的元素,假设我有一个数组Punkt,我有punkt[0] = x: 15, y:"16s"。正如我所知道的那样。该元素总共有4个punkt我想向punkt[3]添加一个未定义的元素,以便其他punkt[1]punkt[2]也将成为undefined。 我需要这个,因为稍后在我的代码中我会检查undefined,并根据此错误抛出错误。

Racks是一个包含Punkt

对象数组的对象
punkt[0] = {
x: 5,
y: "16s" }

我尝试了什么:

racks[trimdevID].punkt[$('#posTable tr:last td:first').text()] = undefined;

3 个答案:

答案 0 :(得分:2)

undefinedbuilt in property of the global object,而且确实是您所需要的,例如is working这样的代码:

var arr = [];
arr.push(undefined);
alert(typeof arr[0]);

这意味着您的问题在其他地方,从快速查看是因为您使用的是非整数索引。试试这个,它应该工作:

var index = parseInt($('#posTable tr:last td:first').text(), 10);
if (!isNaN(index))
    racks[trimdevID].punkt[index] = undefined;

答案 1 :(得分:1)

您可以在数组

中尝试 .push
yourArray.push(undefined)
i = 0; //Position Of Undefined
console.log(typeof yourArray[i])

答案 2 :(得分:1)

您当然可以使用push()例程(请参阅http://www.w3schools.com/jsref/jsref_push.asp)。在您的示例中,这看起来像:

// push two undefined elements:
racks[trimdevID].punkt.push(undefined)
racks[trimdevID].punkt.push(undefined)

假设您已经在数组中准确地拥有两个元素,并且您只需要四个元素。更通用的版本是:

var newLength = 4;
for (var idx = racks[trimdevID].punkt.length; idx <= newLength; idx++)
{
   racks[trimdevID].punkt.push(undefined);
}

我相信其他类似的堆栈问题也有相同的答案。您可以查看此问题以获取更多示例(How to initialize an array's length in javascript?