Javascript 对象的Array.prototype.forEach.call等效项
我正在寻找一个类似的:Javascript 对象的Array.prototype.forEach.call等效项,javascript,Javascript,我正在寻找一个类似的: var myArr = [DOMElement, DOMElement]; Array.prototype.forEach.call(myArr, function(el, i) { el.addEventListener('click', function() { alert('you clicked on element number ' + i); }, false); }); 这方面的问题是,您不会像这里一样遇到addEventListe
var myArr = [DOMElement, DOMElement];
Array.prototype.forEach.call(myArr, function(el, i) {
el.addEventListener('click', function() {
alert('you clicked on element number ' + i);
}, false);
});
这方面的问题是,您不会像这里一样遇到addEventListener问题:
var myArr = [DOMElement, DOMElement];
for (var i=0; i<myArr.length; i++) {
myArr[i].addEventListener('click', function() {
alert('you clicked on element number ' + i);
}, false);
}
只需使用获取密钥数组,然后像往常一样使用forEach
,如下所示
Object.keys(myObj).forEach(function(k) {
myObj[k].addEventListener('click', function() {
alert('you clicked on element with key = ' + k)
}, false);
});
只需使用获取密钥数组,然后像往常一样使用forEach
,如下所示
Object.keys(myObj).forEach(function(k) {
myObj[k].addEventListener('click', function() {
alert('you clicked on element with key = ' + k)
}, false);
});
由于您使用的是
forEach
,因此我假设您使用ES5是安全的。可以使用Object.keys
从对象返回键数组。然后对其使用forEach
Object.keys(myObj).forEach(function(key,i){
myObj[key].addEventListener(...);
});
请注意,
Object.keys
返回的键的顺序与in循环的相同。它不能保证不同浏览器的顺序相同。如果顺序很重要,我建议您还是使用数组。因为您使用的是forEach
,所以我认为您使用ES5是安全的。可以使用Object.keys
从对象返回键数组。然后对其使用forEach
Object.keys(myObj).forEach(function(key,i){
myObj[key].addEventListener(...);
});
请注意,Object.keys
返回的键的顺序与in
循环的相同。它不能保证不同浏览器的顺序相同。如果顺序真的很重要,我建议你还是用数组来代替。I
是这里的索引,所以它应该可以工作。这就是全部代码。记住Array.prototype.foreach
的回调顺序是:value、index、originalArrayi
是这里的索引,所以它应该可以工作。这就是全部代码。记住Array.prototype.foreach
的回调顺序是:value,index,originalArray@AvinashBabu你可以删除评论:谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不检查任何解决方案:P@AvinashBabu你可以删除评论:谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不检查任何解决方案:P正确答案,只需注意ES5。超级主意谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不检查任何解决方案:P正确答案,只需注意ES5。超级主意谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不留任何解决方案勾选:P