Javascript拼接不拼接

Javascript拼接不拼接,javascript,arrays,object,splice,Javascript,Arrays,Object,Splice,tl;博士即使没有我的解释,你也可以看看下面的代码和输出,发现一些可疑的东西。Splice返回它拼接的索引,但数据仍保留在数组中 所以我有一个对象,它的键控几乎像一个数组(0,1,2,3…等等)。每个对象键都有一个数组值。数组是一个对象数组。下面是一个简化的对象,它显示了我正在使用的基本结构: obj = { '1': [{},{},{},{}], '2': [{},{},{},{}], '3': [{},{},{},{}] }; 我有一些代码需要从其中一个数组中拼接出

tl;博士即使没有我的解释,你也可以看看下面的代码和输出,发现一些可疑的东西。Splice返回它拼接的索引,但数据仍保留在数组中

所以我有一个对象,它的键控几乎像一个数组(0,1,2,3…等等)。每个对象键都有一个数组值。数组是一个对象数组。下面是一个简化的对象,它显示了我正在使用的基本结构:

obj = {
    '1': [{},{},{},{}],
    '2': [{},{},{},{}],
    '3': [{},{},{},{}]
};
我有一些代码需要从其中一个数组中拼接出一个数组索引(对象)。这是代码,控制台记录了所有内容(我将在下面显示输出)

console.log(从索引到删除);
对于(j=0;j
注意,在第二个“console.log(this._index);”中,拼接对象仍然是原始数组的一部分。我假设这个索引[2]现在少了一个项目。另外,我应该剪接出索引0,但它返回索引1

以下是输出:

所以,如果有人知道我可能做错了什么,请大声说出来

谢谢,
Mike

您显示的代码中缺少很多内容,因此我不得不做一些猜测。我运行了这段代码,它按预期工作:

var obj = {
    '1': [{},{},{},{}],
    '2': [{},{},{},{}],
    '3': [{},{},{},{}]
};

var indices_to_remove = [1];

var i = 1;
alert(indices_to_remove);
for(j = 0; j < indices_to_remove.length; j++) {
    alert("i: " + i)
    alert('j: ' + j)
    alert(obj[i]);
    alert(obj[i].splice(indices_to_remove[j], 1));
    alert(obj[i]);
}
var obj={
'1': [{},{},{},{}],
'2': [{},{},{},{}],
'3': [{},{},{},{}]
};
var指数_至_移除=[1];
var i=1;
警报(从索引到删除);
对于(j=0;j

但是,您应该考虑在索引数组中向后循环以移除。删除第一项后,第二项即为第一项。如果删除第二项,实际上是删除的第三项。

显示的代码中缺少很多内容,因此我不得不猜测一下。我运行了这段代码,它按预期工作:

var obj = {
    '1': [{},{},{},{}],
    '2': [{},{},{},{}],
    '3': [{},{},{},{}]
};

var indices_to_remove = [1];

var i = 1;
alert(indices_to_remove);
for(j = 0; j < indices_to_remove.length; j++) {
    alert("i: " + i)
    alert('j: ' + j)
    alert(obj[i]);
    alert(obj[i].splice(indices_to_remove[j], 1));
    alert(obj[i]);
}
var obj={
'1': [{},{},{},{}],
'2': [{},{},{},{}],
'3': [{},{},{},{}]
};
var指数_至_移除=[1];
var i=1;
警报(从索引到删除);
对于(j=0;j

但是,您应该考虑在索引数组中向后循环以移除。删除第一项后,第二项即为第一项。如果您删除第二项,它实际上是您删除的第三项。

JSON很好,但我现在无法真正重写所有支持它的内容。我的问题是,在这种情况下,为什么splice会出现故障。@尤达:JSON与此有什么关系?他正在使用数组和对象文本声明他的数组。看起来像JSON(一种数据格式)是偶然的。如果它是用
newarray(…)
newobject()
写出来的,那么问题也是一样的。JSON很棒,但我现在无法真正重写所有支持它的东西。我的问题是,在这种情况下,为什么splice会出现故障。@尤达:JSON与此有什么关系?他正在使用数组和对象文本声明他的数组。看起来像JSON(一种数据格式)是偶然的。如果使用
new Array(…)
new Object()
将其写入,则问题将是相同的。