gpt4 book ai didi

javascript - 从关联数组中删除条目 (JavaScript)

转载 作者:行者123 更新时间:2023-12-01 02:43:46 26 4
gpt4 key购买 nike

我目前在从 JS 的关联数组中删除条目时遇到问题。

我试过这个:

  myArray['key'] = value;
myArray['key1'] = value1;

...

delete myArray['key'];

但我在我的应用程序中得到以下结果:

  [ undefined, { key1: 'value1', key2: 'value2' }, undefined,
{ key1: 'value1', key2: 'value2' }, undefined, undefined ]

如何删除整个条目、键和值?我找到了 splice() 方法,但我认为它使用了不同的索引。我无法通过将 key 传递给 splice() 来删除我想要的条目。

最佳答案

看来您正在混合数组对象。关联数组应该用对象来实现:

myArray = {};
myArray['key'] = value;
myArray['key1'] = value1;

虽然这有点令人困惑,因为在您的输出中,对象不再有 key(所以它有效),但是包含这些对象的数组作为未定义的值。我看不出如何 delete myArray['key']; 与您的输出以及哪个变量现在包含哪个值有关(请说明)。

但看起来你做了类似的事情:

var container = new Array(6);
container[1] = myArray;
container[3] = myArray;

这将用 6 个 undefined 值(某种程度上)初始化数组,然后将第二个和第四个值设置为其他值。

如果你想使用那个“数组”作为关联数组,你也应该将它声明为对象:

var container = {};

如果您需要更好的答案,请发布更多代码。

更新:是的,您应该将 displayedWidgets 声明为对象:

var widgets = {
displayedWidgets: {},

clear: function() {
this.displayedWidgets = {};
},

add: function(widget) {
this.displayedWidgets[widget.id] = widget;
},

addArray: function(newWidgets) {
// note that `each` is only available in newer browsers,
// just loop over the array
for(var i = newWidgets.length; i--; ) {
this.add(newWidgets[i]);
}
},

remove: function(widgetId) {
if (widgetId in this.displayedWidgets) {
delete this.displayedWidgets[widgetId];
}
}
};

关于javascript - 从关联数组中删除条目 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6101809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com