Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 - Fatal编程技术网

在JavaScript中拼接字符串索引数组

在JavaScript中拼接字符串索引数组,javascript,arrays,Javascript,Arrays,我有一个字符串索引数组,我想从中删除一个项 考虑以下示例代码: var arr = new Array(); arr[0] = "Zero"; arr[1] = "One"; arr[2] = "Two"; arr.splice(1, 1); for (var index in arr) document.writeln(arr[index] + " "); //This will write: Zero

我有一个字符串索引数组,我想从中删除一个项

考虑以下示例代码:

    var arr = new Array();       
    arr[0] = "Zero";
    arr[1] = "One";
    arr[2] = "Two";
    arr.splice(1, 1);

    for (var index in arr)
        document.writeln(arr[index] + " ");

    //This will write: Zero Two

    var arr = new Array();
    arr["Zero"] = "Zero";
    arr["One"] = "One";
    arr["Two"] = "Two";

    arr.splice("One", 1); //This does not work
    arr.splice(1, 1); //Neither does this

    for (var index in arr)
        document.writeln(arr[index] + " ");

    //This will write: Zero One Two

如何像在第一个示例中一样从第二个示例中删除“一”?

一旦数组具有字符串键(或后面没有的数字),它就会成为一个对象

对象没有拼接方法(或与数组不同)。你必须写你自己的,通过制作一个新的对象,并复制到它的关键,你想保留


但是要小心!键的顺序并不总是与它们添加到对象中的顺序相同!这取决于浏览器。

正确的方法不是使用数组,而是使用对象:

var x = {};
x['Zero'] = 'Zero';
x['One'] = 'One';
x['Two'] = 'Two';
console.log(x); //  Object Zero=Zero One=One Two=Two
delete x['One'];
console.log(x); //  Object Zero=Zero Two=Two

可能是@Daniel的副本-不,它没有,这不是在修改数组。在添加值之后和删除值之前执行arr.length。@Daniel您混淆了对象和数组,然后在数组中区分了delete和splice:不,不混淆。只是不知道它是怎么工作的。但是你发布的链接给出了一个很好的解释。在这个威胁中非常有用。