Dar*_*bio 5 javascript internet-explorer
我有一个对象如下:
var dataSources = [
{
Stage: [2, 3, 4],
Name: "GetAustralianStateList"
},
{
Stage: [2, 3, 4],
Name: "GetGenderList"
},
{
Stage: [2, 3, 4],
Name: "GetTitleList"
},
{
Stage: [2, 3, 4],
Name: "GetCountryList"
},
{
Stage: [2, 3, 4],
Name: "GetRegionList"
},
{
Stage: [2, 3, 4],
Name: "GetNonEnglishLanguageList"
},
{
Stage: [2, 3, 4],
Name: "GetContactRelationshipList"
},
{
Stage: [3, 4],
Name: "GetCompanyCodeList"
},
{
Stage: [3, 4],
Name: "GetBusinessContractList"
},
{
Stage: [3, 4],
Name: "GetPayrollAreaList"
},
{
Stage: [3, 4],
Name: "GetAdministrationAreaList"
},
{
Stage: [3, 4],
Name: "GetWorkContractList"
},
{
Stage: [2, 3, 4],
Name: "GetFirstLanguageList"
},
];
Run Code Online (Sandbox Code Playgroud)
当我dataSources.length在Chrome中调用时,它会返回对象中正确数量的项目.但是Internet Explorer的返回长度比对象实际长度多14到1.
有任何想法吗?
遗憾的是,您发现了ECMAScript实现中极少数错误之一:IE将数组文字中的单个尾随逗号视为省略,因此它将长度增加1:
var a = [0,1,];
alert(a.length); // 3 in IE
// 2 in other browsers
a.hasOwnProperty('2'); // false in all browsers
Run Code Online (Sandbox Code Playgroud)
上面显示IE将逗号视为一个省略:长度增加了1但是索引2中没有数组成员.
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |