簡體   English   中英

Javascript使用splice()刪除數組上的項目不起作用

[英]Javascript remove item on array using splice() not working

所以我有一個像這樣的數組 var arr = [foo1:"bar1", foo2:"bar", foo3:"bar3"]

然后我使用了這個arr.splice(index, 1); 給定index是動態的,只說它是0但沒有從數組中刪除值foo1:"bar1"

上面的數組也可以在我的代碼上使用,但是在JSFiddle上顯示錯誤。 我不知道為什么。

謝謝。

編輯我不知道為什么它在控制台上沒有顯示錯誤,但是這是我的操作方法。

var arr = [];

我通過這樣做為數組動態增加了價值

arr["foo"] = "bar";

結果是[foo:"bar"];

有想法嗎?

編輯2

這是控制台的屏幕截圖。 在此處輸入圖片說明

該數組的結構無效。

var arr = [foo1:"bar1", foo2:"bar", foo3:"bar3"];

數組將在方括號[]包含逗號分隔的項目,而不是鍵值

如果要具有鍵值,則應為大括號{}對象

var arr = {foo1:"bar1", foo2:"bar", foo3:"bar3"};

如果要從arr刪除第一個屬性,請執行

var keys = Object.keys( arr );
delete arr[ keys[ 0 ] ];

要添加鍵值,

arr[ "foo5" ] = "bar";

很長的路要走:

var arr = [];

var foo1 = {};
foo1['foo1'] = 'bar1';

var foo2 = {};
foo1['foo2'] = 'bar2';

arr.push(foo1);
arr.push(foo2);

alert(arr.length); // output: 2

var index = arr.indexOf(arr, foo1); // or var index = $.inArray(arr, foo1);
arr.splice(index, 1);

alert(arr.length) // output: 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM