1

我有以下对象:

var arrayOfStuff= {};
arrayOfStuff.chapter = [];

for (var k = 0; k < array2.length; k++) {
    arrayOfStuff.chapter.push({"title": array2[k][1], "page": array2[k][2]}) 
}

如何获得从 arrayOfStuff 中删除记录的能力,而不留下空白记录?我已经尝试了很多东西,并没有在这里发布它们,因为我知道它们是错误的!

即我有

NameA, 2
NameB, 7
NameC, 11
NameD, 15
NameE, 20

我称之为 arrayOfStuff.chapter[2].remove(); 要得到:

NameA, 2
NameB, 7
NameD, 15
NameE, 20

PS:在一个小问题上,这种类型的对象的正确名称是什么?我会将它关联为某种多维数组。

4

4 回答 4

2

要从数组中删除元素,您可以使用splice(). 第一个参数是要删除的第一个项目的索引,第二个参数是要删除的项目数。以下示例删除元素 2。

arrayOfStuff.chapter.splice(2, 1);

此函数适用于数组。如果要从对象中删除属性,可以使用delete关键字。但是,如果在数组上使用 delete,它会留下一个空元素。以下示例从您的arrayOfStuff对象中删除属性章节。

delete arrayOfStuff.chapter;

回答您的附带问题:arrayOfStuff只是一个对象。它有一个名为chapter的属性,它是一个数组。这种构造没有特殊的名称。

于 2013-10-08T13:42:56.480 回答
1

您可以使用splice()

arrayOfStuff.chapter.splice(2,1);
// 2 : start index
// 1 : how many
于 2013-10-08T13:39:27.383 回答
0

使用 splice 方法从数组中删除项目。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

于 2013-10-08T13:39:43.713 回答
0

向数组中添加项目: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2,0,"Lemon","Kiwi");

水果的结果将是: 香蕉、橙子、柠檬、猕猴桃、苹果、芒果

在位置 2,删除 2 个项目: var fruits = ["Banana", "Orange", "Apple", "Mango"];

水果.splice(2,2);

水果的结果将是: 香蕉,橙子

于 2013-10-08T13:45:42.050 回答