关于javascript:这个数组叫什么…以及如何从中删除项

What is this array called… and how to remove items from it

本问题已经有最佳答案,请猛点这里访问。

我使用的是一个数组,我很难描述它是什么类型的数组,这使得我很难使用它。到目前为止它对我有效。我只是好奇。

我最终想删除这个数组的结尾。

我试过.pop().grep()。它不起作用。

下面是我的代码示例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var options = {};
$('.option:visible').each(function(){
     var option_label ="";
     var option_selected = [];
     var option_img ="";

     ...


     options[option_label] = {
         option_selected: option_selected,
         option_image : option_img
     };
});

我想做的是:

1
2
3
4
if(option_label.indexOf("something") != -1) {
   //then pop off options
}
//continue about your business

为了澄清,我不知道option_label的确切名称。


它是一个javascript对象。您可能不希望看到这个问题来删除属性,它提供了不同的方法。其中之一是:

1
delete options.something;

What is this array called…

它根本不是一个数组。它是一个物体。数组是由索引值(数字)键控的有序项集。对象(在javascript中)是一组无序的键/值对。

...and how to remove items from it

要从对象中删除属性,可以使用delete,使用括号语法和属性名称的字符串表达式(可以是变量引用,例如option_label)指定属性:

1
2
3
4
5
delete options[option_label];
// or
delete options["some property name"];
// or
delete options["some" +" property" +"name"];

…或使用点语法和文字属性名称:

1
delete options.someLiteralPropertyName;

.pop不存在于对象,因为对象没有顺序,所以弹出对象的"最后一个"条目的概念是没有意义的。


基本上是一个对象(或者你可以把它看作一个关联数组),所以试着删除:

1
delete  options[option_label];