對象無length屬性時IE6/IE7中無法將其轉(zhuǎn)換成偽數(shù)組(ArrayLike)
更新時間:2011年07月31日 21:36:13 作者:
對象無length屬性時IE6/7中無法將其轉(zhuǎn)換成偽數(shù)組(ArrayLike) 的解決方法,需要的朋友可以參考下。
有時需要將數(shù)組轉(zhuǎn)成偽數(shù)組(ArrayLike),如下
var ary = ['one','two','three'];
var obj = {}; // 沒有l(wèi)ength屬性
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
IE8/9/Firefox/Safari/Chrome 依次彈出了obj的key及其value。即能轉(zhuǎn)換成ArrayLike。
但I(xiàn)E6/7下則不能,沒有輸出任何信息表明obj仍然是個空對象。
如果給obj加個length屬性,情況則不同
var ary = ['one','two','three'];
var obj = {length:0}; // 有l(wèi)ength,值為0
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
這次IE6/7(所有瀏覽器)中均彈出了key及其value,都能轉(zhuǎn)換成ArrayLike
注意,length只能賦值為0而非它值,否則得到的對象key和value就不是一一對應(yīng)的了。
var ary = ['one','two','three'];
var obj = {length:2}; // 有l(wèi)ength,非零值
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
復(fù)制代碼 代碼如下:
var ary = ['one','two','three'];
var obj = {}; // 沒有l(wèi)ength屬性
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
IE8/9/Firefox/Safari/Chrome 依次彈出了obj的key及其value。即能轉(zhuǎn)換成ArrayLike。
但I(xiàn)E6/7下則不能,沒有輸出任何信息表明obj仍然是個空對象。
如果給obj加個length屬性,情況則不同
復(fù)制代碼 代碼如下:
var ary = ['one','two','three'];
var obj = {length:0}; // 有l(wèi)ength,值為0
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
這次IE6/7(所有瀏覽器)中均彈出了key及其value,都能轉(zhuǎn)換成ArrayLike
注意,length只能賦值為0而非它值,否則得到的對象key和value就不是一一對應(yīng)的了。
復(fù)制代碼 代碼如下:
var ary = ['one','two','three'];
var obj = {length:2}; // 有l(wèi)ength,非零值
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
您可能感興趣的文章:
相關(guān)文章
javascript創(chuàng)建含數(shù)字字母的隨機(jī)字符串方法總結(jié)
如果想創(chuàng)建一個含有數(shù)字、字母(大小寫)或者符號的字符串,比如從[a-zA-Z0-9]集合中中創(chuàng)建一個隨機(jī)的字符串,長度為5.有沒有什么比較好的代碼呢?本文提供了幾種方法,包括自動改變字符集合。一起來學(xué)習(xí)下。2016-08-08
javascript 同時在IE和FireFox獲取KeyCode的代碼
以前一直在IE8中測試網(wǎng)站,后來寫的一部分含有Ajax的代碼出現(xiàn)了故障,不得已下載了Firefox以及它的插件Firebug,才發(fā)現(xiàn),F(xiàn)F不支持windows.event事件。于是換了一種思路。2010-02-02
JavaScript中展開運(yùn)算符及應(yīng)用的實(shí)例代碼
這篇文章主要介紹了JavaScript中展開運(yùn)算符及應(yīng)用的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
TypeScript中Array(數(shù)組)聲明與簡單使用方法
這篇文章主要給大家介紹了關(guān)于TypeScript中Array(數(shù)組)聲明與簡單使用的相關(guān)資料,TypeScript Array(數(shù)組)數(shù)組對象是使用單獨(dú)的變量名來存儲一系列的值,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
手把手教會你用Javascript實(shí)現(xiàn)放大鏡效果(詳細(xì)注釋+完整代碼)
放大鏡可以說是前端人必須學(xué)會的程序之一,下面這篇文章主要給大家介紹了關(guān)于手把手教會你用Javascript實(shí)現(xiàn)放大鏡效果的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03

