Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象的Array.prototype.forEach.call等效项_Javascript - Fatal编程技术网

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、originalArray
i
是这里的索引,所以它应该可以工作。这就是全部代码。记住
Array.prototype.foreach
的回调顺序是:value,index,originalArray@AvinashBabu你可以删除评论:谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不检查任何解决方案:P@AvinashBabu你可以删除评论:谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不检查任何解决方案:P正确答案,只需注意ES5。超级主意谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不检查任何解决方案:P正确答案,只需注意ES5。超级主意谢谢!另一个家伙在同一时间发布了同样的解决方案,哈哈,所以我会投票给你们两个,不留任何解决方案勾选:P