์ ์ start_num์ end_num๊ฐ ์ฃผ์ด์ง ๋, start_num๋ถํฐ end_num๊น์ง์ ์ซ์๋ฅผ ์ฐจ๋ก๋ก ๋ด์ ๋ฆฌ์คํธ๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
// ์ฒซ๋ฒ์งธ! Array.from()์ ์ฌ์ฉ
function solution(start, end) {
idx = start;
return Array.from({length: end-start+1}, ()=> {return start++});
}
//๋๋ฒ์งธ! Array()์ fill() ์ฌ์ฉ
function solution(start, end) {
return Array(end-start+1).fill(start).map((x,idx) => x+idx);
}
Array() ์์ฑ์๋ ์๋ก์ด Array ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ
๋งค๊ฐ๋ณ์ 2๊ฐ์ง
elementN
: ๋ฐฐ์ด์ ์ด๊ธฐํํ ๋ ์ฑ์๋ฃ์ ์์. ๋จ, ํญ๋ชฉ์ด ํ๋ ๋ฟ์ด๋ฉฐ ๊ทธ ํญ๋ชฉ์ ์๋ฃํ์ด ์ซ์์ผ ๊ฒฝ์ฐ ์๋์ arrayLength
๋งค๊ฐ๋ณ์๋ก ๊ฐ์ฃผํ๋ค.
arrayLength
: Array ์์ฑ์์ ์ ๊ณตํ ์ ์ผํ ๋งค๊ฐ๋ณ์๊ฐ 0์์ 2^32-1 ์ดํ์ ์ ์์ธ ๊ฒฝ์ฐ, length
์์ฑ์ด ํด๋น ๊ฐ์ธ ์๋ก์ด JavaScript ๋ฐฐ์ด์ ์์ฑํ๋ค.
// ๋จ์ผ ๋งค๊ฐ๋ณ์ ๋ฐฐ์ด ์์ฑ์ ์ฌ์ฉ ์์
let fruits = new Array(2);
console.log(fruits.length); // 2
console.log(fruits[0]); // undefined
// ๋ณต์ ๋งค๊ฐ๋ณ์ ๋ฐฐ์ด ์์ฑ์
let fruits = new Array("์ฌ๊ณผ", "๋ฐ๋๋");
console.log(fruits.length); // 2
console.log(fruits[0]); // "์ฌ๊ณผ"
Array.from() ๋ฉ์๋๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด(array-like object)๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด(iterable object)๋ฅผ ์๊ฒ ๋ณต์ฌํด ์๋ก์ดArray ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค.
Array.from(arrayLike[, mapFn[, thisArg]])
arrayLike
: ๋ฐฐ์ด๋ก ๋ณํํ๊ณ ์ ํ๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด
mapFnOptional
(์ต์
๋): ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ๋ํด ํธ์ถํ ๋งตํ ํจ์.
thisArgOptional
(์ต์
๋) : mapFn
์คํ ์์ this
๋ก ์ฌ์ฉํ ๊ฐ.
// string์์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ
console.log(Array.from('foo')); // ["f", "o", "o"]
// from๊ณผ ํ์ดํ ํจ์ ํจ๊ป ์ฌ์ฉํ๊ธฐ
console.log(Array.from([1, 2, 3], (x) => x + x)); // [2, 4, 6]
// Map์์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ (key, value ๊ตฌ์กฐ๋ถํด ํ ๋น ๊ฐ๋ฅ)
const mapper = new Map([
["1", "a"],
["2", "b"],
]);
Array.from(mapper.values()); // ['a', 'b'];
Array.from(mapper.keys()); // ['1', '2'];
// ๋ฐฐ์ด ํํ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด(arguments)์์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ
function f() {
return Array.from(arguments);
}
f(1, 2, 3); // [1, 2, 3]
fill() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์์ ์ธ๋ฑ์ค๋ถํฐ ๋ ์ธ๋ฑ์ค์ ์ด์ ๊น์ง ์ ์ ์ธ ๊ฐ ํ๋๋ก ์ฑ์๋๋ค.
value
: ์ฑ์ธ ๊ฐ start
: ์ด๋์ ๋ถํฐ ์ฑ์ธ ์ง, ์์ ์ธ๋ฑ์คend
: ์ด๋๊น์ง ์ฑ์ธ ์ง, ๋ ์ธ๋ฑ์คconst array1 = [1, 2, 3, 4];
// Fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// Expected output: Array [1, 2, 0, 0]
// Fill with 5 from position 1
console.log(array1.fill(5, 1));
// Expected output: Array [1, 5, 5, 5]
console.log(array1.fill(6));
// Expected output: Array [6, 6, 6, 6]
์ด๋ค ๋ฌธ์์ด์ ๋ํด์ ์ ๋ฏธ์ฌ๋ ํน์ ์ธ๋ฑ์ค๋ถํฐ ์์ํ๋ ๋ฌธ์์ด์ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, "banana"์ ๋ชจ๋ ์ ๋ฏธ์ฌ๋ "banana", "anana", "nana", "ana", "na", "a"์
๋๋ค.
๋ฌธ์์ด my_string๊ณผ is_suffix๊ฐ ์ฃผ์ด์ง ๋, is_suffix๊ฐ my_string์ ์ ๋ฏธ์ฌ๋ผ๋ฉด 1์, ์๋๋ฉด 0์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
function solution(my_string, is_suffix) {
return my_string.slice(-is_suffix.length) === is_suffix ? 1 : 0
}
const solution = (str, suff) => str.endsWith(suff) ? 1 : 0
endWith()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค! ์ด ์ฝ๋๋ฅผ ๋ณด๊ณ endWith()
๋ผ๋ ๋ฉ์๋๊ฐ ์๋ค๋ ๊ฑธ ์ฒ์ ์์์ ์ ๋ฆฌํ๊ณ ์ถ์๋ค. endsWith() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ฌธ์์ด์์ ํน์ ๋ฌธ์์ด๋ก ๋๋๋์ง๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ true ํน์ false๋ก ๋ฐํ
str.endsWith(searchString[, length])
searchString
์ด ๋ฌธ์์ด์ ๋์ด ํน์ ๋ฌธ์์ด๋ก ๋๋๋์ง๋ฅผ ์ฐพ๊ธฐ ์ํ๋ ๋ฌธ์์ด
length
(์ต์
๋)
์ฐพ๊ณ ์ ํ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ์ด๋ฉฐ, ๊ธฐ๋ณธ๊ฐ์ ๋ฌธ์์ด ์ ์ฒด ๊ธธ์ด.
๋ฌธ์์ด์ ๊ธธ์ด๊ฐ์ ๋ฌธ์์ด ์ ์ฒด ๊ธธ์ด ์์์๋ง ์กด์ฌํด์ผ ํ๋ค.
var str = "To be, or not to be, that is the question.";
console.log(str.endsWith("question.")); // true
console.log(str.endsWith("to be")); // false
console.log(str.endsWith("to be", 19)); // true
[...num_str].reduce((a, c) => a + +c, 0)
a
์ b
๊ฐ string ํ์์ผ ๋, ์ ์ฝ๋์ฒ๋ผ c
์๋ง +
์ฐ์ฐ์๋ฅผ ๋ถ์ฌ์ค๋ ์ ์ชฝ ๋ณ ๋ชจ๋ ์ซ์ํ์์ผ๋ก ์ธ์ XOR
์ฐ์ฐ์ (en-US)์์ ์ฌ์ฉhttps://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Array
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/fill
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Exponentiation