8560


現在下記のソースのようにspliceを用いた実装をしたのですが、

[code]

    filtered_files.splice('key', 1);
    
[/code]

目的の要素が削除されません。

lengthも減る要素の削除方法があれば、ご教授をお願いします。


CC BY-SA 3.0
2015-03-30T08:08:07.073
8556
2015-03-30T10:17:40.190
7626
question
javascript html
連想配列に対して、lengthも減る削除がしたいです


・まず連想配列にはLengthの概念はないので、

[code]

    var hogeArr = { hoge1 : "h" , hoge2 : "o" , hoge3 : "g" , hoge4 : "e" };
    
    var count = 0;
    for(var j in hogeArr){
        count++;
    }
    alert(count);
    
[/code]

でLengthを数えるみたいですね。

・lengthの減る削除方法はないので、

[code]

    // 連想配列を生成する
    var myObj = { key1: 'value1', key2: 'value2', key3: 'value3' };
    
    // 連想配列のキー(key2)を削除する
    delete myObj['key2'];
    
[/code]

で削除します


CC BY-SA 3.0
2015-03-30T08:22:56.193
8557
2015-03-30T08:30:30.303
2015-03-30T08:30:30.303
7626
7626
8556
answer


Javascriptの連想配列は[`Array`](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array)ではなくて、[`Object`](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object)ですから、`length`とのプロパティがありません。要素数を取得するには下記のように[`Object.keys()`](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)を用いると一番便利だと思います。

[code]

    var hash = { key1: "value 1", key2: "value 2"};
    var hash = Object.keys(hash).length;
    
[/code]

要素の削除には、[delete](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/delete)演算子が使用できます：

[code]

    delete hash.key1;
    
[/code]

または

[code]

    delete hash['key1'];
    
[/code]


CC BY-SA 3.0
2015-03-30T10:02:00.680
8560
2015-03-30T10:17:40.190
2015-03-30T10:17:40.190
3371
3371
8556
answer