Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从关联数组中删除值_Javascript_Arrays_Object - Fatal编程技术网

Javascript 从关联数组中删除值

Javascript 从关联数组中删除值,javascript,arrays,object,Javascript,Arrays,Object,可能重复: 我有一个数组,我想从中删除一个值 将其视为一个数组 ['utils':['util1','util2']] 现在我只想删除util2。我如何做到这一点,我尝试使用delete,但没有成功 有人能帮我吗?使用以下方法: 如果不知道数组元素的实际位置,则需要迭代数组并从那里拼接元素。请尝试以下方法: for (var i = object.utils.length; i--;) { var index = object.utils.indexOf('util2');

可能重复:

我有一个数组,我想从中删除一个值

将其视为一个数组

['utils':['util1','util2']]

现在我只想删除
util2
。我如何做到这一点,我尝试使用
delete
,但没有成功

有人能帮我吗?

使用以下方法:

如果不知道数组元素的实际位置,则需要迭代数组并从那里拼接元素。请尝试以下方法:

for (var i = object.utils.length; i--;) {
    var index = object.utils.indexOf('util2');

    if (index === -1) break;

    if (i === index) {
        object.utils.splice(i, 1); break;
    }
}

更新:techfoobar的答案似乎比我的更地道。请考虑使用HIS。

< P>我认为JavaScript中没有所谓的关联数组。它实际上是一个物体

[ 'utils': [ 'util1', 'util2' ] ]
var obj = { 'utils': [ 'util1', 'util2' ] }
对于这一行,我认为它不会编译。你应该写这个

var obj = { 'utils': [ 'util1', 'util2' ] }
因此,要删除数组(内部数组)中的元素“util2”,有两种方法

  • 使用pop()

  • 缩短长度

    obj["utils"].length --;
    

  • 您可以在与
    Array.indexOf()
    的组合中使用
    Array.splice()

    var toDelete = object.utils.indexOf('util1');
    if(toDelete != -1) {
        object.utils.splice(toDelete, 1);
    }
    

    如果这是对象文字,则周围的方括号应该是括号。我看不到关联数组。+1,您就快到了:它是
    object.utils.splice(1,1)
    。您必须告诉它要删除多少(第二个
    1
    )。第一个
    1
    只是告诉它在什么索引处做某事。编辑:是的,就是这样。:-)如果对象是这样定义的:
    var object={'utils':['util2','util1']}
    ?Darin想说,如果元素的顺序不同怎么办。这个问题的答案都是一样的。是的,这就是我的意思。此解决方案仅在某些非常特殊的情况下有效。@DarinDimitrov然后您将执行
    .utils.splice(0)
    var toDelete = object.utils.indexOf('util1');
    if(toDelete != -1) {
        object.utils.splice(toDelete, 1);
    }