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

