【Перевод】30 секунд ES6 (1)

внешний интерфейс

Предыстория проекта Введение

30 seconds of codeэто очень качественный выборJavaScriptПроект, который суммирует много использованийES6Блок кода для синтаксиса, целью проекта проекта является более простым, более эффективным, быстрее, реализует базовый модуль кода, фрагментацию, практические сухие товары,30Получите высокое качество за считанные секундыES6кодовый блок.

30 секунд проекта ES6
Документация ECMAScript 6 на китайском языке (Yifeng Ruan)
Инструменты Babel (ES6 скомпилирован в ES5)

Первоначальный замысел обучения

  1. УчитьES6Базовые знания, улучшение способности алгоритма программы; изучениеJavaScriptбаза отAPIНачинать.
  2. В каждой статье5блок отличного кода, и5больше, чемAPIЧтобы уложить прочную основу для стека на переднем конце Daquan!

метод исследования

  1. Внимательно прочитайте английскую версию30 seconds of codeкаждогоES6кодовый блок и поместитеAPIКлючевой анализ.
  2. Распознавайте новые слова и повышайте уровень английского. Цель состоит в том, чтобы легко читать профессиональные книги на английском языке и всесторонне улучшать мягкую силу передовых технологий.

Классификация основного содержания

contents модуль
Adapter адаптер
Array множество
Browser браузер
Date Дата
Function функция
Math математический метод
Node узел
Object объект
String нить
Type Типы
Utility использовать функцию

20190121 Открыть первую неделю штамповки, ary , all, allEqual, any, arrayToCSV .

Adapterадаптерary

Создать акцепт доn个参数的函数,忽略任何其他参数。 использоватьArray.prototype.slice(0,n)Методы иspreadспред оператор(…)Позвоните в предоставленную функциюfn(наиболееnпараметры).

const ary = (fn , n) => (...args) => fn(...args.slice(0, n));
const firstTwoMax = ary(Math.max, 2);
console.log([[2, 6, 'a'], [8, 4, 6], [10]].map(x => firstTwoMax(...x)));//[6, 8, 10]

MDN разрешает случай Array.prototype.slice()

Долженslice()Метод Возвращает неглубокую копию части массива в новый объект массива.beginприбытьend ( endне включено). Исходный массив не будет изменен.

var animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2,4));//['camel', 'duck']
console.log(animals);// ["ant", "bison", "camel", "duck", "elephant"]

MDN разрешает случай Math.max()

Функция Math.max() возвращает наибольшее из нулевого или более чисел.

console.log(Math.max(-10, 20)); //20

Arrayмножествоall

Если предоставленная функция предиката возвращает значение для всех элементов коллекцииtrue, затем вернутьсяtrue, иначе возвратfalse. использоватьArray.prototype.every()Проверьте, все ли элементы в коллекции основаны наfnвернутьtrue. Опустить второй параметрfn, используя логическое значение по умолчанию.

const all = (arr, fn = Boolean) => arr.every(fn);
console.log(all);
console.log(all([4, 2, 3], x => x >1));//true
console.log(all([1, 2, 3]));//true

MDN разрешает случаи Array.prototype.every()

Долженevery()Метод проверяет, проходят ли все элементы массива проверку, реализованную предоставленной функцией. Для пустого массива вызов этого метода в любом случае вернетtrue.

console.log([12, 5, 8, 130, 44].every(x => x >= 10));//false
console.log([12, 54, 18, 130, 44].every(x => x >=10));//true
console.log([].every(x => x));//true

ArrayмножествоallEqual

Проверяет, все ли элементы в массиве равны. использоватьArray.prototype.every()Проверяет, что все элементы массива совпадают с первым элементом.

const allEqual = arr => arr.every( val => val === arr[0]);
console.log(allEqual([1, 2, 3, 4, 5, 6]));//false
console.log(allEqual([1, 1, 1, 1]));//true

Arrayмножествоany

Если предоставленная функция предиката возвращает хотя бы один элемент в коллекцииtrue, затем вернутьсяtrue, иначе возвратfalse. использоватьArray.prototype.some()Проверяет, основан ли какой-либо элемент в коллекции наfnвернутьtrue. Опустить второй параметрfn, используя логическое значение по умолчанию.

const any = (arr, fn = Boolean) => arr.some(fn);
console.log(any([0, 1, 2, 0], x => x >=2));//true
console.log(any([0, 0, 1, 0]));//true

MDN разрешает случай Array.prototype.some()

Долженsome ()Метод проверяет, проходит ли хотя бы один элемент в массиве проверку, реализованную предоставленной функцией. Этот метод возвращаетfalseЛюбое условие, помещенное в пустой массив.

console.log([2, 5, 8, 1, 4].some(x => x > 10));//false
console.log([12, 5, 8 ,1 , 4].some( x => x >10));//true

ArrayмножествоarrayToCSV

Преобразование 2D-массива в значения, разделенные запятыми (csv) нить. использоватьArray.prototype.map ()а такжеArray.prototype.join(delimiter)Объедините одномерные массивы в строки. использоватьArray.prototype.join('\n')(, символ новой строки) полная строка из двух, объединенных вCSVСтрока формата, отсортированная по строке и новой строке. во-вторыхomitпараметрdelimiter,использоватьdelimiter(По умолчанию).

const arrayToCSV = (arr, delimiter = ',') => arr.map( v => v.map( x => `"${x}"`).join(delimiter)).join('\n');

console.log(arrayToCSV([['a', 'b'], ['c', 'd']]));
//"a","b" 
//"c","d"

console.log(arrayToCSV([['a', 'b'],['c', 'd']],';'));
//"a","b" 
//"c","d"

MDN разрешает случай Array.prototype.map()

Долженmap()метод создает новый массив, результатом которого является вызов предоставленной функции для каждого элемента в вызывающем массиве.

var array1 = [1, 4, 9 ,16];
const map1 = array1.map(x => x * 2);
console.log(map1);// [2, 8, 18, 32]
console.log(array1);//[1, 4, 9, 16]

Также поделитесь интересной картинкой для лучшего пониманияmap() .

MDN разрешает случай Array.prototype.join()

Долженjoin()方法通过连接数组(或类数组对象)中的所有元素(由逗号或指定的分隔符字符串分隔)来创建并返回新字符串。 Если в массиве только один элемент, то этот элемент возвращается без разделителя.如果元素是undefinedилиnull, он преобразуется в пустую строку.

var elements = ['Fire', 'Wind', 'Rain'];

console.log(console.log(elements.join('-')));//Fire-Wind-Rain

резюме, Каждый день качественное обучениеES6

Историческая статья:

Прочитайте "JavaScript, которого вы не знаете - Том 1" 1-1 Какова область применения