Страницы

Поиск по вопросам

понедельник, 9 декабря 2019 г.

Нужен ли сейчас underscrore?

#javascript #underscorejs


Какие возможности underscore вы используете? Например, в нём есть функция each. Зачем
она нужна, если теперь есть forEach, map в обычном js? Я так понимаю эта библиотека
была актуальна когда не было ES5?
    


Ответы

Ответ 1



Нет не нужен, можно родными средствами языка делать. Интерес к библиотекм постепенно снижается. Вот динамика запросов из гугла: Сравните сами: Массивы _.concat // Underscore/Lodash var array = [1] var other = _.concat(array, 2, [3], [ [4] ]) console.log(other) // результат: [1, 2, 3, [4]] // Native var array = [1] var other = array.concat(2, [3], [ [4] ]) console.log(other) // результат: [1, 2, 3, [4]] _.fill // Underscore/Lodash var array = [1, 2, 3] _.fill(array, 'a') console.log(array) // результат: ['a', 'a', 'a'] _.fill(Array(3), 2) // результат: [2, 2, 2] _.fill([4, 6, 8, 10], '*', 1, 3) // результат: [4, '*', '*', 10] // Native var array = [1, 2, 3] array.fill('a') console.log(array) // результат: ['a', 'a', 'a'] Array(3).fill(2) // результат: [2, 2, 2] [4, 6, 8, 10].fill('*', 1, 3) // результат: [4, '*', '*', 10] _.find // Underscore/Lodash var users = [{ 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true }] _.find(users, function(o) { return o.age < 40; }) // результат: object for 'barney' // Native var users = [{ 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true }] users.find(function(o) { return o.age < 40; }) // результат: object for 'barney' _.findIndex // Underscore/Lodash var users = [{ 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true }] var index = _.findIndex(users, function(o) { return o.age >= 40; }) console.log(index) // результат: 1 // Native var users = [{ 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false }, { 'user': 'pebbles', 'age': 1, 'active': true }] var index = users.findIndex(function(o) { return o.age >= 40; }) console.log(index) // результат: 1 _.indexOf // Underscore/Lodash var array = [2, 9, 9] var result = _.indexOf(array, 2) console.log(result) // результат: 0 // Native var array = [2, 9, 9] var result = array.indexOf(2) console.log(result) // результат: 0 _.join // Lodash var result = _.join(['one', 'two', 'three'], '--') console.log(result) // результат: 'one--two--three' // Native var result = ['one', 'two', 'three'].join('--') console.log(result) // результат: 'one--two--three' _.lastIndexOf // Underscore/Lodash var array = [2, 9, 9, 4, 3, 6] var result = _.lastIndexOf(array, 9) console.log(result) // результат: 2 // Native var array = [2, 9, 9, 4, 3, 6] var result = array.lastIndexOf(9) console.log(result) // результат: 2 _.reverse // Lodash var array = [1, 2, 3] console.log(_.reverse(array)) // результат: [3, 2, 1] // Native var array = [1, 2, 3] console.log(array.reverse()) // результат: [3, 2, 1] Коллекции _.each // Underscore/Lodash _.each([1, 2, 3], function(value, index) { console.log(value) }) // результат: 1 2 3 // Native [1, 2, 3].forEach(function(value, index) { console.log(value) }) // результат: 1 2 3 _.every // Underscore/Lodash function isLargerThanTen(element, index, array) { return element >= 10 } var array = [10, 20, 30] var result = _.every(array, isLargerThanTen) console.log(result) // результат: true // Native function isLargerThanTen(element, index, array) { return element >= 10 } var array = [10, 20, 30] var result = array.every(isLargerThanTen) console.log(result) // результат: true _.filter // Underscore/Lodash function isBigEnough(value) { return value >= 10 } var array = [12, 5, 8, 130, 44] var filtered = _.filter(array, isBigEnough) console.log(filtered) // результат: [12, 130, 44] // Native function isBigEnough(value) { return value >= 10 } var array = [12, 5, 8, 130, 44] var filtered = array.filter(isBigEnough) console.log(filtered) // результат: [12, 130, 44] _.includes var array = [1, 2, 3] // Underscore/Lodash - also called with _.contains _.includes(array, 1) // результат: true // Native var array = [1, 2, 3] array.includes(1) // результат: true // Native (only works with flat array values, no complex objects) var array = [1, 2, 3] array.indexOf(1) > -1 // результат: true _.map // Underscore/Lodash var array1 = [1, 2, 3] var array2 = _.map(array1, function(value, index) { return value * 2 }) console.log(array2) // результат: [2, 4, 6] // Native var array1 = [1, 2, 3] var array2 = array1.map(function(value, index) { return value * 2 }) console.log(array2) // результат: [2, 4, 6] _.pluck // Underscore/Lodash var array1 = [{ name: "Alice" }, { name: "Bob" }, { name: "Jeremy" }] var names = _.pluck(array1, "name") console.log(names) // результат: ["Alice", "Bob", "Jeremy"] // Native var array1 = [{ name: "Alice" }, { name: "Bob" }, { name: "Jeremy" }] var names = array1.map(function(x) { return x.name }) console.log(names) // результат: ["Alice", "Bob", "Jeremy"] _.reduce // Underscore/Lodash var array = [0, 1, 2, 3, 4] var result = _.reduce(array, function(previousValue, currentValue, currentIndex, array) { return previousValue + currentValue }) console.log(result) // результат: 10 // Native var array = [0, 1, 2, 3, 4] var result = array.reduce(function(previousValue, currentValue, currentIndex, array) { return previousValue + currentValue }) console.log(result) // результат: 10 _.reduceRight // Underscore/Lodash var array = [0, 1, 2, 3, 4] var result = _.reduceRight(array, function(previousValue, currentValue, currentIndex, array) { return previousValue - currentValue }) console.log(result) // результат: -2 // Native var array = [0, 1, 2, 3, 4] var result = array.reduceRight(function(previousValue, currentValue, currentIndex, array) { return previousValue - currentValue }) console.log(result) // результат: -2 _.size // Underscore/Lodash var result = _.size({ one: 1, two: 2, three: 3 }) console.log(result) // результат: 3 // Native var result2 = Object.keys({ one: 1, two: 2, three: 3 }).length console.log(result2) // результат: 3 _.some // Underscore/Lodash function isLargerThanTen(element, index, array) { return element >= 10 } var array = [10, 9, 8] var result = _.some(array, isLargerThanTen) console.log(result) // результат: true // Native function isLargerThanTen(element, index, array) { return element >= 10 } var array = [10, 9, 8] var result = array.some(isLargerThanTen) console.log(result) // результат: true Функции _.after var notes = ['profile', 'settings'] // Underscore/Lodash var renderNotes = _.after(notes.length, render) notes.forEach(function(note) { console.log(note) renderNotes() }) // Native notes.forEach(function(note, index) { console.log(note) if (notes.length === (index + 1)) { render() } }) Язык _.isNaN // Underscore/Lodash console.log(_.isNaN(NaN)) // результат: true // Native console.log(isNaN(NaN)) // результат: true // ES6 console.log(Number.isNaN(NaN)) // результат: true Объект _.assign // Underscore: _.extendOwn // Lodash function Foo() { this.c = 3; } function Bar() { this.e = 5; } Foo.prototype.d = 4; Bar.prototype.f = 6; var result = _.assign(new Foo, new Bar); console.log(result); // результат: { 'c': 3, 'e': 5 } // Native function Foo() { this.c = 3; } function Bar() { this.e = 5; } Foo.prototype.d = 4; Bar.prototype.f = 6; var result = Object.assign(new Foo, new Bar); console.log(result); // результат: { 'c': 3, 'e': 5 } _.keys // Underscore/Lodash var result = _.keys({ one: 1, two: 2, three: 3 }) console.log(result) // результат: ["one", "two", "three"] // Native var result2 = Object.keys({ one: 1, two: 2, three: 3 }) console.log(result2) // результат: ["one", "two", "three"] Строка _.repeat // Lodash var result = _.repeat('abc', 2) // результат: 'abcabc' // Native var result = 'abc'.repeat(2) console.log(result) // результат: 'abcabc' _.toLower // Lodash var result = _.toLower('FOOBAR') console.log(result) // результат: 'foobar' // Native var result = 'FOOBAR'.toLowerCase() console.log(result) // результат: 'foobar' _.toUpper // Lodash var result = _.toUpper('foobar') console.log(result) // результат: 'FOOBAR' // Native var result = 'foobar'.toUpperCase() console.log(result) // результат: 'FOOBAR' _.trim // Lodash var result = _.trim(' abc ') console.log(result) // результат: 'abc' // Native var result = ' abc '.trim() console.log(result) // результат: 'abc' Ссылки Оригинал Mozilla Developer Network Underscore.js Lodash.js You - Dont - Need - jQuery

Комментариев нет:

Отправить комментарий