Цитата:
// мини j :-)
function $(name, element) {
var el = (element || document).querySelectorAll(name);
return el ? (el.length > 1 ? Array.apply(null, el) : el[0]) : [];
}
|
Цитата:
var arr = [1, 2, 3];
var arr1 = ["a", "b", "c"];
var mas = arr1.map.call(arr, function (el) {
return el;
});
alert(mas);
|
if (!Array.prototype.map) {
Array.prototype.map = function (fn, scope) {
var tmp = [];
for (var i = 0, len = this.length; i < len; ++i) {
tmp.push(fn.call(scope, this[i], i, this));
}
return tmp;
}
}
var arr = [1, 2, 3];
var arr1 = ["a", "b", "c"];
var mas = arr1.map.call(arr, function (el) {
return el;
});
alert(mas);
var sas = arr.map(function (el) {
return ++el;
});
alert(sas);
:dance: |
bes, зачем здесь:
var mas = arr1.map.call(arr, function (el) {
return el;
});
arr1? Чем он "лучше" чем Array.prototype или []? Он же никак никак не влияет на выполнение функции и к нему внутри функции кроме как по имени не обратишься. Или я ошибаюсь? Poznakomlus на developer.mozilla.org я прочитал что твоя первая конструкция в посте №23 это полифилл. Как я могу проверить работоспособность твоего кода (в каких случаях метод map будет отсутствовать)? Мне нужен старый браузер или в коде как-то объявить версию языка? |
Цитата:
Цитата:
для проверки убери проверку на существование, метод map будет переопределён |
Я думал что к этому массиву можно обратиться внутри функции через this
|
Цитата:
|
Чтобы установить свой контекст нужно третьим аргументом у метода call установить необходимый объект.
Я хочу посредством этой конструкции сложить элементы двух массивов без цикла. |
Цитата:
навскиду можно так
var arr1 = [1, 2, 3];
var arr2 = ["a", "b", "c"];
var result = arr1.map(function (val, index) {
return val + arr2[index];
});
alert(result);
|
bes,
Да, у map. Проглядел. Спасибо. |
| Часовой пояс GMT +3, время: 22:00. |