2019.01.17
지난 4주 동안 자바스크립트 기본 문법을 배웠다. 레플릿 문제들을 풀면서 유용한 메소드를 하나씩 모아 테이블에 정리했다. Mdn 에 비 비 하면 이 새 메소드들 을 내 것 만들기 위해 복습 의 차원 에서 에서 노트 를 해 의 차원 에서 에서 에서 노트 해해
Пример переменных
var string = 'hello'; var array = [1, 2, 3]; var obj = { first: "codes", last: "states"};
‹Отдельно для строки›
.кусочек()
возвращает строку
var newString = string.slice(); // creates a copy
.расколоть()
возвращает массив
string.split(""); // ["h", "e", "l", "l", "o"] string.split(" "); // ["hello"] var DOB = '2019,01,01'; DOB.split(",").join("/") // "2019/01/01"
.повторение()
возвращает строку
string.repeat(3) // 'hellohellohello'
.начинается с()
возвращает логическое значение
string.startsWith('h') // true string.startsWith('e') // false
.включает()
возвращает логическое значение
string.includes('h') // true string.includes('h', 2) // searching for 'h' from index 2 returns false
.заменять()
возвращает строку
var string = "How are you?"; string.replace("How", "Where"); // "Where are you?"
.совпадение()
возвращает массив, содержащий совпавшие строки.
string.match(/code/gi) // ["hello"]
.поиск()
возвращает число
string.search(/l/gi) // 2, the index # in which the letter 'l' first occurs string.search(/g/gi) // -1, if no match is found
.charAt()
возвращает строку из одной буквы
var h = 'hello'.charAt(0); // 'h'
.charCodeAt()
возвращает число
for (var i = 0; i < 'nancy'.length; i++) { console.log('nancy'.charCodeAt(i)); } // 110, 97, 110, 99, 121
.charCodeAt()
возвращает строку
String.fromCharCode(110, 97, 110, 99, 121) // 'nancy'
.нанизывать()
obj.toString()
String(12345) // '12345' (12345).toString() // '12345' (12345).toString().slice(0, 2) // '12' (12345).toString(2) // "11000000111001"
‹Для массива›
.кусочек()
возвращает массив
var newArray = array.slice(); // creates a copy
.concat()
возвращает массив
var arr1 = [1, 2]; var arr2 = [3, 4]; return arr1.concat(arr2); // [1, 2, 3, 4]
.Сортировать()
возвращает массив [Mutable]
array.sort(function(a, b) { return a - b; }); // [1, 2, 3] array.sort(function(a, b) { return b - a; }); // [3, 2, 1]
.для каждого()
ничего не возвращает; он просто выполняет предоставленную функцию один раз для каждого элемента.
const items = ['item1', 'item2', 'item3']; const copy = []; // forEach items.forEach(function(item){ copy.push(item) }); // for (var element of array) for (var element of items) { copy.push(element) } // for loop for (let i = 0; i < items.length; i++) { copy.push(items[i]) }
.карта()
возвращает массив
const num = [1, 2, 3, 4, 5]; const double_num = num.map((n) => { return n * 2; }); double_num // [2, 4, 6, 8, 10] num // [1, 2, 3, 4, 5]
.найти()
возвращает первый элемент, прошедший проверку.
array.find(function(element) { return element > 2; }); // 3
.фильтр()
возвращает массив [неизменяемый]
// Return a NEW array containing elements that are greater than 5. var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const result = arr.filter(num => num > 5); result // [6, 7, 8, 9, 10] // Given an array of string, "filterOddLengthWords" returns an array containing only the elements of the given array whose lengths are odd numbers. function filterOddLengthWords(words) { const result = words.filter(word => word.length % 2 !== 0); return result; // Return a NEW array containing all elements of a given array except Nth element. function getAllElementsButNth(arr, n){ return arr.filter(function(elem, i){ return i !== n; });
.немного()
возвращает логическое значение
// Does this value exist in a given array? array.some(x => x % 2 === 0) // true function isBiggerThan10(element, index, array) { return element > 10; } [2, 5, 8, 1, 4].some(isBiggerThan10); // false [12, 5, 8, 1, 4].some(isBiggerThan10); // true
.каждый()
возвращает логическое значение
// all elements in the array must pass the test. array.every(x => x % 2 === 0) // false function isBiggerThan10(element, index, array) { return element > 10; } [2, 5, 8, 10, 12].every(isBiggerThan10); // false
.уменьшать()
возвращает одно значение
let arr = [1,2,3,4]; let sum = arr.reduce((acc, val) => { return acc + val; }); // sum = 10 // Compare with a for loop var arr = [1, 2, 3, 4]; var sum = 0; for(var i = 0; i < arr.length; i++) { sum += arr[i]; } // sum = 10 // Pass the initial value as an empty array [] const age = [33, 25, 17, 1]; const double_age = age.reduce((acc, val) => { acc.push(val * 2); return acc; }, []); // [66, 50, 34, 2] // Another example setting the Initial Value to be an empty array const data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; const flat = data.reduce((acc, val) => { return acc.concat(val); }, []); flat // [1, 2, 3, 4, 5, 6, 7, 8, 9]
.индекс чего-либо()
возвращает число
// returns the first index at which a given element can be found in the array array.indexOf(2) // 1 // returns -1 if it is not present. array.indexOf(4) // -1
.наполнять()
возвращает массив
// Create a new array of length 5, all elements with a value of 5. Array(5).fill(5) // [5, 5, 5, 5, 5]
Массив.от()
возвращает массив
// In ES5 Array.from({length: 5}); // [undefined, undefined, undefined, undefined, undefined] Array.from({length: 10}, (v, i) => i); // the value of v is undefined, index values are returned // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] // In ES6 Array(10).keys() // Array Iterator {} Array.from(Array(10).keys()) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] // Shorter version using spread operator [...Array(10).keys()] // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] // Create an array of a specified range function range(size, startAt = 0) { return [...Array(size).keys()].map(i => i + startAt); } range(5, startAt = 600) // [600, 601, 602, 603, 604]
.обеспечить регресс()
возвращает перевернутый массив
array.reverse() // [3, 2, 1] array // [3, 2, 1]; the original array is mutated
‹Для конкретного объекта›
.hasOwnProperty()
возвращает логическое значение
function extend(obj1, obj2) { for (var key in obj2) { if (!obj1.hasOwnProperty(key)) { obj1[key] = obj2[key]; } } }
Объект.назначить()
возвращает объект
// Object.assign(target, ...source). 가장 마지막에 더한 object 의 properties 가 target object 에 최종 저장됨. var obj1 = {a: 1, b: 2}, obj2 = {b: 4, c: 3}; Object.assign({}, obj1, obj2) {a: 1, b: 4, c: 3} Object.assign({}, obj2, obj1) {b: 2, c: 3, a: 1} var obj3 = {a: 1}; var obj4 = {b: 2}; Object.assign(obj3, obj4); {a: 1, b: 2}
var temp = '12345' Number(temp) // 12345 var strToArr = temp.split("").map(Number); // [1, 2, 3, 4, 5] [‘a’, 2, 3].map(Number) // [NaN, 2, 3]
‹Математика›
Math.random()
возвращает любое число с плавающей запятой между [0, 1)
Math.random() * x // you can adjust the range of possible integers that can be generated from Math.random(). For instance, if you want to get 6 numbers out, you need to multiply Math.random() by 6. Math.random() * 6 // any floating number between [0, 6) // Generate an integer in the range of [5, 10]. var max = 10; var min = 5; // The code below will generate any number from 0, 1, 2, 3, 4, 5. Math.floor(Math.random() * (max - min + 1)); // Adding the min value to the equation will generate any number from 5, 6, 7, 8, 9, 10. Math.floor(Math.random() * (max - min + 1)) + min; // We can create a function that returns a random integer between min (inclusive) and max (inclusive). function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } // Or create a function that generates a random string of length n. function getRandomStr(strLength) { const chars = "abcdefghijklmnopqrstuvwxyz"; // chars.length = 26 var result = ""; for (i = 0; i < strLength; i++) { result += chars[getRandomInt(0, 25)]; } return result; }