/ES06-Study

πŸ“Œ EcmaScript 6 study repository !

Primary LanguageHTML

ES06 STUDY

  • es06 studyλ₯Ό μœ„ν•œ λ ˆνŒŒμ§€ν† λ¦¬

forEach()

  • 전달받은 ν•¨μˆ˜λ₯Ό λ°°μ—΄μ˜ 각각 μ›μ†Œμ— λŒ€ν•΄ μ‹€ν–‰
var fruits = ['apple','banana','peach','blue berry'];

// for(var i = 0 ; i < fruits.length ; i++) {
//   console.log(fruits[i]);
// }

fruits.forEach(function(fruit) { // .forEach((fruit) =>
    console.log(fruit);
});

map()

  • 각 λ°°μ—΄ μ›μ†Œμ— μ ˆλ‹¬ 받은 ν•¨μˆ˜ 호좜. κ·Έ 결과둜 μƒˆλ‘œμš΄ λ°°μ—΄ 생성
var fruits = ['apple','banana','peach','blue berry'];
var juice = [];

// for(var i = 0 ; i < fruits.length ; i++){
// 	juice.push(fruits[i]+' juice');
// }

//  map()
var juice = fruits.map(function(fruit) { // .map((fruit) =>
	return fruit + ' juice';
});

var juice = fruits.map(fruit => `${fruit} juice`);

filter()

  • 객체 λ°°μ—΄μ—μ„œ μ–΄λ–€ νŠΉμ •μ‘°κ±΄μ— λ§žλŠ” μ›μ†Œλ“€λ‘œλ§Œ λ°°μ—΄ 생성
var datas = [
    { id: 3, type: 'comment', content: 'κ΅Ώ λͺ¨λ‹'},
    { id: 6, type: 'post', content: '쒋은 μ•„μΉ¨μ΄λ„€μš”' },
    { id: 10, type: 'comment' ,content: 'μ•„μΉ¨μ—λŠ” μ‹œμ›ν•œ λ¬Ό ν•œμž”' },
    { id: 6, type: 'post', content: 'κ³΅λΆ€ν•˜κΈ° μ‹«μ–΄μš”' }];

var filteredData = [];

//  loop
for(var i = 0 ; i < datas.length ; i++){
    if (datas[i].type === 'post'){
        filteredData.push(datas[i]);
    }
}

//  filter()이용
var filteredData = datas.filter( data => {
    return data.type === 'post';
});

reduce()

  • λ°°μ—΄μ˜ 각 μ›μ†Œμ— λŒ€ν•΄ 첫번째 μ›μ†Œ ~ λ§ˆμ§€λ§‰ μ›μ†Œ 순으둜 μ—°μ‚°ν•œ 값이 쀄도둝 ν•¨μˆ˜λ₯Ό μ μš©μ‹œν‚¨λ‹€.
var scores = [1,2,3,4,5];
var sum = 0;

for(var i = 0 ; i < scores.length ; i++){
  sum += scores[i];
}

//  reduce()
var sum = scores.reduce((sum, number) => sum + number,0);

for...in

  • 객체의 λͺ¨λ“  μ—΄κ±° κ°€λŠ₯ν•œ 속성 반볡
var grades = {'egoing': 10, 'k8805': 6, 'sorialgi': 80};
for(key in grades) {
    document.write("key : "+key+" value : "+grades[key]+"<br />");
}
  • κ²°κ³ΌλŠ” μ•„λž˜μ™€ κ°™λ‹€.
key :   egoing value : 10
key :   k8805 value : 6
key :   sorialgi value : 80
  • for 문은 in 뒀에 λ”°λΌμ˜€λŠ” λ°°μ—΄μ˜ key 값을 in μ•žμ˜ λ³€μˆ˜ name에 λ‹΄μ•„μ„œ λ°˜λ³΅λ¬Έμ„ μ‹€ν–‰ν•œλ‹€. 반볡문이 싀행될 λ•Œ λ³€μˆ˜ key의 κ°’μœΌλ‘œ egoing, k8805, sorialgiκ°€ 순차적으둜 ν• λ‹Ήλ˜κΈ° λ•Œλ¬Έμ— grades[key]λ₯Ό ν†΅ν•΄μ„œ 객체의 값을 μ•Œμ•„λ‚Ό 수 μžˆλ‹€.

κ°μ²΄μ—λŠ” 객체λ₯Ό λ‹΄μ„μˆ˜λ„ 있고, ν•¨μˆ˜λ„ 담을 수 μžˆλ‹€.

for...of

  • λͺ¨λ“  객체가 μ•„λ‹Œ μ»¬λ ‰μ…˜λ§Œ 반볡
Object.prototype.objCustom = function () {};
Array.prototype.arrCustom = function () {};

let iterable = [3, 5, 7];
iterable.foo = "hello";

//  for ... in
for (let i in iterable) {
    console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}

//  for ... of
for (let i of iterable) {
    console.log(i); // logs 3, 5, 7
}

좜처 http://gnujoow.github.io/dev/2016/10/14/Dev6-es6-array-helper/ https://beomy.tistory.com/20 https://opentutorials.org/course/743/6491