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;
}