將新對象插入索引位置0處的對象數組中的最簡單方法是什麼?沒有jQuery; MooTools沒關係;沒有unshift()
,因爲它是根據w3schools在IE中的undefined
。JavaScript數組
回答
W3CSchools是真的過時,所述unshift
方法是ECMAScript 3rd Edition標準這是有批准和發佈爲1999年12月
的一部分現在是無理由,它從IE 5.5起支持起來。
使用它是安全的,甚至像jQuery或MooTools這樣的現代庫在內部使用它(您可以查看源代碼:)。
var array = [2,3];
array.unshift(1); // returns 3
// modifies array to [1, 2, 3]
此方法返回新的數組長度,並將作爲參數傳遞的元素插入到數組的第一個位置。
-1因爲OP特別要求「不'unshift()'」 – 2010-02-04 05:15:16
夥計,有沒有理由避免'unshift' ... – CMS 2010-02-04 05:17:10
提問者沒有指定'unshift',因爲w3schools表示它在IE中不受支持。正如@CMS指出的那樣,這已經過時了:w3schools甚至不會跟蹤* IE <6的市場份額。 – 2010-02-04 05:19:50
對於@JamesBrownIsDead所要做的事情,'unshift'和'concat'比'splice'簡單。 – 2010-02-04 05:22:33
@多米尼克,的確如此。我想我只是'懶'記得不同的方法,只是更通用的:P – 2010-02-04 05:41:35
@okw拼接不錯:) – 2010-02-04 23:59:17
你可以試試這個:
var newItem = 3;
arr = [newItem].concat(arr);
另一種選擇是使用push
和反向指標 - 你可以隨便寫一個對象,做到這一點。
我會用unshift()
如果你的目的是修改數組,否則,你可以使用concat()
作爲了Kobi建議(它返回一個新的數組並且不修改所涉及的陣列):
var arr = [1, 2], newItem = 3;
var newArr = [newItem].concat(arr); // newArr = [1, 2, 3], arr still = [1, 2]
參見:concat
- 1. JavaScript數組數組
- 2. JavaScript數組組
- 3. 將javascript數組整理到javascript數組
- 4. 重組數組javascript
- 5. 組織Javascript數組
- 6. 數組中的javascript數組
- 7. JavaScript數組到JSON數組
- 8. JavaScript數組到PHP數組
- 9. C#數組到javascript數組
- 10. 推Java數組JavaScript數組
- 11. Javascript中的數組數組
- 12. JavaScript assoziativ數組:/
- 13. javascript數組
- 14. javascript數組
- 15. 2D Javascript數組
- 16. Javascript 2D數組
- 17. Javascript數組末
- 18. 從JavaScript數組
- 19. Javascript數組值
- 20. Javascript selecbox.options數組?
- 21. 的JavaScript數組
- 22. JavaScript的數組
- 23. PHP JavaScript數組
- 24. JavaScript數組Dynimic
- 25. 在JavaScript數組
- 26. Javascript/PHP數組
- 27. Javascript nodejs&數組
- 28. JavaScript數組
- 29. 的Javascript:數組
- 30. JavaScript數組
您可能仍然會收到回覆,內容是「你試過jQuery嗎?」。 :) – Alconja 2010-02-04 05:13:49
@JamesBrownIsDead,你有沒有試過jQuery?你真的應該。 :P:P – 2010-02-04 05:18:06
@CMS是正確的:'unshift'對IE有效:http://jsbin.com/umolo – Kobi 2010-02-04 05:19:04