最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Is there a map() function in ExtJS? - Stack Overflow

programmeradmin4浏览0评论

ExtJS has Ext.each() function, but is there a map() also hidden somewhere?

I have tried hard, but haven't found anything that could fill this role. It seems to be something simple and trivial, that a JS library so large as Ext clearly must have.

Or when Ext really doesn't include it, what would be the best way to add it to Ext. Sure, I could just write:

Ext.map = function(arr, f) { ... };

But is this really the correct way to do this?

ExtJS has Ext.each() function, but is there a map() also hidden somewhere?

I have tried hard, but haven't found anything that could fill this role. It seems to be something simple and trivial, that a JS library so large as Ext clearly must have.

Or when Ext really doesn't include it, what would be the best way to add it to Ext. Sure, I could just write:

Ext.map = function(arr, f) { ... };

But is this really the correct way to do this?

Share Improve this question asked Oct 30, 2008 at 20:25 Rene SaarsooRene Saarsoo 13.9k9 gold badges61 silver badges90 bronze badges 2
  • What a different behaviour do you want in 'map' which isn't in 'each'? Wouldn't just Ext.prototype.map = Ext.each.toSource(); help? – Thevs Commented Oct 30, 2008 at 23:22
  • 3 'each' just applies the function to elements of array, but doesn't return anything. 'map' should in addition return the results of each function call. – Rene Saarsoo Commented Oct 31, 2008 at 0:35
Add a ment  | 

5 Answers 5

Reset to default 4

As of at least Ext4, Ext.Array.map is included.

http://docs.sencha./extjs/5.0.1/#!/api/Ext.Array-method-map

Since map is more of a utility than anything, I don't see why there would be any special way of plugging it into the Ext namespace; the way you propose would work well enough, though you might want to do it thusly:

if(Ext && typeof(Ext.map) == "undefined") { // only if Ext exists & map isn't already defined
   Ext.map = function(arr, f) { ... };
}

Seems like that would be fine...but then, I don't use ExtJS, so I don't know. I did take a gander at their docs and it doesn't seem like there is anything special to do in this case.

It appears, that my colleges here are using ext-basex, which extends Array.prototype with map() and other methods.

So I can just write:

[1, 2, 3].map( function(){ ... } );

Problem solved.

What about using one of the hybrid libraries like Ext+Prototype or Ext+Jquery. I've been using Extjs+Prototypejs for a while now and it helped me a lot to work into the Extjs code with having the more familiar prototypejs along for the ride as well.

http://extjs./products/extjs/build/ will build a custom tar/zip file of all the files you need to run extjs and (prototypejs|jquery|yahooUI).

ExtJS doesn't replace Javascript language itself. Array functions aren't in the focus of ExtJS core. However there is a special Ext.Array object type. You can extend it on your own.

EDIT: Not Ext.Array, but just extended Array object.

发布评论

评论列表(0)

  1. 暂无评论