Вы можете сделать его доступным для всех массивов, если у вас нет проблем с распространением собственных прототипов в вашей среде.
Array.prototype.atIndices = function(ind) {
var result = [];
for (var i = 0; i < arguments.length; i++) {
if (arguments[i] in this)
result.push(this[arguments[i]])
}
return result;
}
var result = array.atIndices(1,3);
Вы также могли это проверить, если массив был принят, или сочетание индексов и массивов.
Array.prototype.atIndices = function(ind) {
var result = [];
for (var i = 0; i < arguments.length; i++) {
if (Array.isArray(arguments[i]))
result.push.apply(result, this.atIndices.apply(this, arguments[i]))
else if (arguments[i] in this)
result.push(this[arguments[i]])
}
return result;
}
Это фактически расплющить все Массивы, чтобы они могли быть настолько глубоко вложенными, как вы хотите.
var result = array.atIndices(1, [3, [5]]);
Неа. Нет. –
вы можете расширить массив с помощью функции, имеющей эту функцию. –