Илья Петров, только так делать нельзя в приличном обществе.:)
Если очень хочется, то, конечно, можно, но это плохая практика из-за возможных конфликтов с такими же энтузиастами либо новыми стандартными методами в следующих версиях языка.
Для чего-то своего, то принято делать свой же класс(можно наследоваться от стандартного):
class SuperArray extends Array {
nonEmpty() {
return this.filter(e => e === 0 || (e && (!e.trim || e.trim())));
}
}
const myArr = new SuperArray();
myArr.push('', 1, ' ', 2, '3');
console.log( myArr.nonEmpty().join('-') ); // 1-2-3
Aetae, Честно говоря, хрен редьки не слаще, и если завтра вершители JS встрамят метод Array.nonEmpty() во все браузеры, то SuperArray.nonEmpty() будет так же конфликтовать с ними.
Moses Fender, уровень повреждений разный:
В случае изменения глобального прототипа нельзя будет использовать никакие новые библиотеки, нельзя и самому будет писать код с новым методом. Если же мы таки захотим обновиться - придётся переписать все места где мы применяли этот метод.
В случае использования собственного класса всё прекрасно продолжит работать и ничего переписывать не придётся.:)