Я пытаюсь реализовать w2ui
multi select в одной из диаграмм d3, над которыми я работаю.Ошибка Array.prototype
Это ссылка на образец jsfiddle с проблемой.
У меня есть три функции:
//get a column of an array
Array.prototype.getColumn = function(name) {
return this.map(function(el) {
// gets corresponding 'column'
if (el.hasOwnProperty(name)) return el[name];
// removes undefined values
}).filter(function(el) {
return typeof el != 'undefined';
});
};
//remove duplicates in an array
Array.prototype.contains = function(v) {
for (var i = 0; i < this.length; i++) {
if (this[i] === v) return true;
}
return false;
};
Array.prototype.unique = function() {
var arr = [];
for (var i = 0; i < this.length; i++) {
if (!arr.contains(this[i])) {
arr.push(this[i]);
}
}
return arr;
}
Мне нужно реализовать эти три в одном из своих функций.
Проблема в том, что всякий раз, когда я пытаюсь реализовать эти функции с помощью Array.prototype
, я получаю элементы в мультиселекте как "undefined"
. Число "undefined"
прямо пропорционально числу функтонов с функциями Array.prototype
.
Если удалить эти функции, я могу получить множественный выбор, чтобы работать должным образом (только множественный выбор часть, а не на графике в целом. Я не понимаю, что вызывает ошибку.
Любая помощь приветствуется.
И вы только что узнали, почему это плохая идея для изменения собственных прототипов. Теперь сделайте эти обычные функции. – adeneo
И вы только что узнали, почему это плохая идея, чтобы сделать что-либо, не имея всего плана для вашей среды исполнения. Вы можете изменять собственные прототипы без проблем, если вам требуются стандарты кодирования, которые не противоречат этому решению. –
Итак, если я реализую функции как отдельную функцию, она будет работать? – driftking9987