首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中将forEach循环更改为for循环

在javascript中将forEach循环更改为for循环
EN

Stack Overflow用户
提问于 2016-08-31 06:33:06
回答 3查看 76关注 0票数 0

我目前有一个这样的forEach循环。

代码语言:javascript
复制
var videoUrls ={};
ytplayer.config.args.url_encoded_fmt_stream_map.split(',')
.forEach(function(item) {
    var obj = { };
    item.split('&')
    .forEach(function(param) {
       param = param.split('=');
       obj[param[0]] = decodeURIComponent(param[1]);

});
videoUrls[obj.quality] = obj;});

由于IE不支持forEach循环,我尝试将其转换为for循环。

代码语言:javascript
复制
var videoUrls ={};
var typea= ytplayer.config.args.url_encoded_fmt_stream_map.split(',');
for (var item=0; item<typea.length; item++){
   var obj= {};
   var typeb= typea[item].split('&');
   for (var param=0; param<typeb.length; param++){

       typeb[param]= typeb[param].split('=');
       obj[typeb[0]] = decodeURIComponent(typeb[1]);

}
videoUrls[obj.quality]= obj;
}

但是当我运行脚本时,结果是不同的。我做错什么了?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-31 06:37:25

它应该是:

代码语言:javascript
复制
typeb[param]= typeb[param].split('=');
obj[typeb[param][0]] = decodeURIComponent(typeb[param][1]);

因为另一个循环是:

代码语言:javascript
复制
param = param.split('=');
obj[param[0]] = decodeURIComponent(param[1]);

不是:

代码语言:javascript
复制
obj[item.split("&")[0]] = decodeURIComponent(item.split("&")[1])

如果仍然不清楚,这里有一个更简单的解释:

代码语言:javascript
复制
typeb === item.split("&");
typeb[param] === param;
票数 1
EN

Stack Overflow用户

发布于 2016-08-31 06:40:53

问题出在这里:

代码语言:javascript
复制
for (var param=0; param<typeb.length; param++) {
    typeb[param]= typeb[param].split('=');
    obj[typeb[0]] = decodeURIComponent(typeb[1]);
}

您将覆盖要迭代的数组的一个元素(typeb[param]),然后将硬编码的索引用于同一数组(typeb[1])

应该更像这样:

代码语言:javascript
复制
for (var param=0; param<typeb.length; param++) {
    var arr = typeb[param].split('=');
    obj[arr[0]] = decodeURIComponent(arr[1]);
}
票数 1
EN

Stack Overflow用户

发布于 2016-08-31 06:56:01

你不能使用像jQuery这样的库吗?正是出于这个原因,jQuery应运而生。如果不能,那么我认为这就是你需要做的obj[typebparam] = decodeURIComponent(typebparam);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39238102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档