gpt4 book ai didi

javascript - 在不使用 for...of 的情况下正确使用迭代器

转载 作者:行者123 更新时间:2023-11-30 11:21:41 26 4
gpt4 key购买 nike

我正在使用 URLSearchParams它将返回一个迭代器对象,但在 IE 中不受支持。我添加了一个 polyfill , 但现在 IE 对返回的 iterator object 没有任何原生支持因为它没有实现 for...of语法。

在没有 for..of 的情况下调用迭代器对象的首选语法是什么?

这是 ES6 的 for...of 语法:

var paramsString = "Name=Fiona&Type=Hippo";
var urlParams = new URLSearchParams(paramsString);
var entries = urlParams.entries();

for(pair of entries) {
console.log(pair[0], pair[1]);
}

var paramsString = "Name=Fiona&Type=Hippo";
var urlParams = new URLSearchParams(paramsString);
var entries = urlParams.entries();

for(pair of entries) {
console.log(pair[0] + ": " + pair[1]);
}
<script src="https://cdn.rawgit.com/WebReflection/url-search-params/v0.10.0/build/url-search-params.js"></script>

我很想找到一个规范的源代码,它可以将迭代器对象的调用语法实现回旧浏览器,而不依赖于转译 for...of

最佳答案

为什么不用旧的 forEach

console.log(urlParams); 显示返回的对象具有 forEach 方法,但令人惊讶的是,MDN 中的方法中并未提及它。

urlParams.forEach(function(value, key){ 
console.log(key + ' : ' + value)
});

var paramsString = "Name=Fiona&Type=Hippo";
var urlParams = new URLSearchParams(paramsString);

urlParams.forEach(function(value, key){
console.log(key + ' : ' + value)
});

各浏览器中UrlSearchParams的原型(prototype)方法:

enter image description here

关于javascript - 在不使用 for...of 的情况下正确使用迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49603554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com