时间:2021-07-01 10:21:17 帮助过:209人阅读
map
是在最近的 ECMA-262 标准中新添加的方法;所以一些旧版本的浏览器可能没有实现该方法。在那些没有原生支持 map
方法的浏览器中,你可以使用下面的 Javascript 代码来实现它。
- <code class="language-javascript">if (!Array.prototype.map) {
- Array.prototype.map = function(callback, thisArg) {
- var T, A, k;
- if (this == null) {
- throw new TypeError(" this is null or not defined");
- }
- var O = Object(this);
- var len = O.length >>> 0;
- if (Object.prototype.toString.call(callback) != "[object Function]") {
- throw new TypeError(callback + " is not a function");
- }
- if (thisArg) {
- T = thisArg;
- }
- A = new Array(len);
- k = 0;
- while(k < len) {
- var kValue, mappedValue;
- if (k in O) {
- kValue = O[ k ];
- mappedValue = callback.call(T, kValue, k, O);
- A[ k ] = mappedValue;
- }
- k++;
- }
- return A;
- };
- }</code>