2
刪除的元素,我需要找到第一個可用插槽刪除在陣列查找陣列
這工作:
var A = [1,2]
A[0] = undefined
console.log(A.indexOf(undefined))
但是這個怎麼樣通過?:
var A = [1,2]
delete A[0]
console.log(A)
console.log(A.indexOf(null)) ???
刪除的元素,我需要找到第一個可用插槽刪除在陣列查找陣列
這工作:
var A = [1,2]
A[0] = undefined
console.log(A.indexOf(undefined))
但是這個怎麼樣通過?:
var A = [1,2]
delete A[0]
console.log(A)
console.log(A.indexOf(null)) ???
循環陣列尋找鑰匙不存在。
function find_first_empty_slot(arr) {
for (var i = 0; i < arr.length; i++) {
if (!(i in arr)) { return i; }
}
return -1;
}
你找不到這些使用indexOf
,因爲它沒有看缺失的元素。您也不能使用Array#forEach
等,因爲它們跳過了缺失的元素。
我也認爲你必須看看陣列,如果你想用「空插槽」 – Balder 2014-10-06 07:35:29
看起來像一個XY問題。使用稀疏數組可能不是您的問題的正確解決方案。目標是什麼,你想做什麼? – elclanrs 2014-10-06 07:25:12
'function removeFromArray(arr,index){ delete arr [0]; 回報指數; };'? – Evgeniy 2014-10-06 07:30:11
@elclanrs,'undefined'對我來說很好,我只是好奇我是否也可以使用空插槽。在特定情況下,稀疏數組也可以保存一些內存。 – exebook 2014-10-06 07:49:17