Array
concat
Description
concat
λ©μλλ μΈμλ‘ μ£Όμ΄μ§ λ°°μ΄μ΄λ κ°λ€μ κΈ°μ‘΄ λ°°μ΄μ ν©μ³μ μλ‘μ΄ λ°°μ΄μ λ°ν ν©λλ€.
Syntax
arrayObj1.concat(arrayObj2)
Example
['H', 'e', 'l', 'l', 'o'].concat(['W', 'o', 'r', 'l', 'd']);
// ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
μ΄ λ©μλλ μλ‘μ΄ λ°°μ΄ κ°μ²΄λ₯Ό λ°ν ν©λλ€.
slice
Description
νΉμ λ°°μ΄μ start
μ end
μΈλ±μ€μ μλ‘μ΄ λ°°μ΄ κ°μ²΄λ₯Ό λ°ν ν©λλ€.
Syntax
arrayObj.slice(start, [end])
Parameter
- arrayObj
- Array κ°μ²΄
- start
- arrayObject μ λν μ§μ λ λΆλΆμ μμ
- end
- arrayObject μ λν μ§μ λ λΆλΆμ λ
Example
['H', 'e', 'l', 'l', 'o'].slice(1)
// ['e', 'l', 'l', 'o']
['H', 'e', 'l', 'l', 'o'].slice(1, 4)
// ['e', 'l', 'l']
['H', 'e', 'l', 'l', 'o'].slice(0, -1)
// ['H', 'e', 'l', 'l']
['H', 'e', 'l', 'l', 'o'].slice(-1, 0)
// []
μ΄ λ©μλλ μλ‘μ΄ λ°°μ΄ κ°μ²΄λ₯Ό λ°ν ν©λλ€.
shift
Description
λ°°μ΄μ 첫λ²μ§Έ μμλ₯Ό μ κ±°νκ³ , μ κ±°λ μμλ₯Ό λ°νν©λλ€.
Syntax
arrayObj.shift()
Example
var arrayObj = ['H', 'e', 'l', 'l', 'o'];
var shifted = arrayObj.shift();
console.log(shifted);
// 'H'
console.log(arrayObj);
// ['e', 'l', 'l', 'o']
while
ꡬ문 μνμ 첫λ²μ§Έ μμλ₯Ό μ κ±°νλ©΄μ λΉ λ°°μ΄μ΄ λμ¬λκΉμ§ λ°λ³΅λ¬Έμ μννλ€.
var names = ["Andrew", "Edward", "Paul", "Chris" ,"John"];
while( (i = names.shift()) !== undefined ) {
console.log(i);
}
// Andrew, Edward, Paul, Chris, John
μ΄ λ©μλλ λ°°μ΄μ κΈΈμ΄λ₯Ό λ³νκ² ν©λλ€.
λ°°μ΄μ λ§μ§λ§ μμλ₯Ό μ κ±°νλ건pop
λ©μλ μ΄λ€.
unshift
Description
μλ‘μ΄ μμλ₯Ό λ°°μ΄μ μμͺ½μ μΆκ°νλ€.
return κ°μ μλ‘μ΄ μμκ° μΆκ°λ λ°°μ΄μ΄λ€.
Syntax
arrayObj.unshift([element1[, ...[, elementN]]])
Example
var arrayObj = ['1', '2'];
arrayObj.unshift(0);
// arr is [0, 1, 2]
arrayObj.unshift(-2, -1);
// arr is [-2, -1, 0, 1, 2]
arrayObj.unshift([-3]);
// arr is [[-3], -2, -1, 0, 1, 2]
μ΄ λ©μλλ λ°°μ΄μ κΈΈμ΄λ₯Ό λ³νκ² ν©λλ€.
map
Description
map()
λ©μλλ λ°°μ΄λ΄μ λͺ¨λ μμμ λνμ¬ μ 곡λ ν¨μ(callback)λ₯Ό νΈμΆνκ³ , κ·Έ κ²°κ³Όλ₯Ό λͺ¨μμ μλ‘μ΄ λ°°μ΄μ λ°ν ν©λλ€.
Syntax
var newAry = arrayObj.map(function callback(currentValue[, index[, array]]) {
// newAry μ μ μμλ₯Ό λ°ν
}[, thisArg]);
Parameter
- callback
- μλ‘μ΄ λ°°μ΄ μμλ₯Ό μμ±νλ ν¨μ
- currentValue
- λ°°μ΄ μμ μ€ νμ¬ μ²λ¦¬λκ³ μλ μμ
- index
- νμ¬ μ²λ¦¬λλ μμμ λ°°μ΄ λ΄ μΈλ±μ€
- array
map
λ©μλκ° μ μ©λλ λ³Έλμ λ°°μ΄
- thisArg
callback
μ μ€νν λthis
λ‘ μ¬μ©λλ κ° (κΈ°λ³Έκ°μ window κ°μ²΄)
Example
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log(numbers);
// [1, 4, 9]
console.log(roots);
// [1, 2, 3]
var numbers = [1, 4, 9];
var doubles = numbers.map(function (num) {
return num * 2;
});
console.log(doubles);
// [2, 8, 18]
var mapAry = [{key: 1, value, 10}, {key: 2, value: 20}, {key: 3, value: 30}];
var new_mapAry = mapAry.map(function (obj) {
var new_obj = {}
new_obj[obj.key] = obj.value;
return new_obj;
});
console.log(new_mapAry);
// [{1:10}, {2:20}, {3:30}]
μ§μ λ μ¬μ΄μ¦λ‘ μμμ λ°°μ΄ μμ±
var SIZE = 10;
var getRandomNumber = function (min, max, floor) { /* λλ€ κ° μ μ‘° */ };
var newArray = Array
.apply(null, {length: SIZE})
.map(Function.call, function () {
return getRandomNumber(MIN, MAX)
});
μ΄ λ©μλλ μλ‘μ΄ λ°°μ΄ κ°μ²΄λ₯Ό λ°ν ν©λλ€.
filter
Description
filter()
λ©μλλ λ°°μ΄λ΄μ λͺ¨λ μμμ λνμ¬ μ 곡λ ν
μ€νΈ ν¨μ(callback)λ₯Ό νΈμΆνκ³ , κ·Έ κ²°κ³Όλ₯Ό λͺ¨μμ μλ‘μ΄ λ°°μ΄μ λ°ν ν©λλ€.
Syntax
var newAry = arrayObj.filter(function callback(currentValue[, index[, array]]) {
// λ°ννμ΄ boolean κ° true μ΄λ©΄ κ°μ΄ μ μ§, false μ΄λ©΄ κ° μμ
}[, thisArg]);
Parameter
- callback
- μλ‘μ΄ λ°°μ΄ μμλ₯Ό μμ±νλ ν¨μ
- currentValue
- λ°°μ΄ μμ μ€ νμ¬ μ²λ¦¬λκ³ μλ μμ
- index
- νμ¬ μ²λ¦¬λλ μμμ λ°°μ΄ λ΄ μΈλ±μ€
- array
map
λ©μλκ° μ μ©λλ λ³Έλμ λ°°μ΄
- thisArg
callback
μ μ€νν λthis
λ‘ μ¬μ©λλ κ° (κΈ°λ³Έκ°μ window κ°μ²΄)
Example
function isBigEnough(value) {
return value >= 10;
}
var filterd = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log(filtered);
// [12, 130, 44]
μ΄ λ©μλλ μλ‘μ΄ λ°°μ΄ κ°μ²΄λ₯Ό λ°ν ν©λλ€.
forEach
Description
forEach()
λ©μλλ λ°°μ΄ μμλ§λ€ ν λ²μ© μ 곡λ ν¨μ(callback) ν¨μλ₯Ό νΈμΆν΄μ μ¬μ©ν©λλ€.
Syntax
arrayObj.forEach(function callback(currentValue[, index[, array]]) {
// λ°νν μμ΄ κ° μμλ§λ€ ν¨μλ₯Ό μ€ν
}[, thisArg]);
Parameter
- callback
- μλ‘μ΄ λ°°μ΄ μμλ₯Ό μμ±νλ ν¨μ
- currentValue
- λ°°μ΄ μμ μ€ νμ¬ μ²λ¦¬λκ³ μλ μμ
- index
- νμ¬ μ²λ¦¬λλ μμμ λ°°μ΄ λ΄ μΈλ±μ€
- array
map
λ©μλκ° μ μ©λλ λ³Έλμ λ°°μ΄
- thisArg
callback
μ μ€νν λthis
λ‘ μ¬μ©λλ κ° (κΈ°λ³Έκ°μ window κ°μ²΄)
sort
Description
sort()
λ©μλλ λ°°μ΄μ μμλ₯Ό μ μ ν μμΉμ μ λ ¬νκ³ λ°°μ΄μ λ°νν©λλ€.
κΈ°λ³Έ μ λ ¬ μμλ _μ λ μ½λ ν¬μΈνΈ_μ λ°λ¦
λλ€.
Syntax
arrayObj.sort([compareFunction])
Parameter
- compareFunction
- μ λ ¬ μμλ₯Ό μ μνλ ν¨μλ₯Ό μ§μ ν©λλ€. (λ―Έ μ§μ μ κΈ°λ³Έ μ λ ¬ μμμ λ°λ¦)
Example
var fruit = ['orange', 'apple', 'banana'];
console.log(fruit.sort());
// ['apple', 'banana', 'orange']
var score = [4, 11, 2, 10, 3, 1];
// ASCII λ¬Έμ μμλ‘ μ λ ¬λμ΄ μ«μμ ν¬κΈ°λλ‘ λμ€μ§ μμ
// [1, 10, 11, 2, 3, 4]
score.sort();
// μ€λ¦μ°¨μ μ λ ¬
// [1, 2, 3, 4, 10, 11]
score.sort(function () {
return a - b;
});
// λ΄λ¦Όμ°¨μ μ λ ¬
// [11, 10, 4, 3, 2, 1]
score.sort(function () {
return b - a;
});
var student = {
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'The', value: -12 },
{ name: 'Magnetic' },
{ name: 'Zeros', value: 37 }
};
// value κΈ°μ€μΌλ‘ μ λ ¬
student.sort(function (a, b) {
if (a.value > b.value) {
return 1;
}
if (a.value < b.value) {
return -1;
}
// a must be equal to b
return 0;
});
// name κΈ°μ€μΌλ‘ μ λ ¬
student.sort(function(a, b) {
var nameA = a.name.toUpperCase(); // ignore upper and lowercase
var nameB = b.name.toUpperCase(); // ignore upper and lowercase
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
// μ΄λ¦μ΄ κ°μ κ²½μ°
return 0;
});
κΈ°μ‘΄μμλ κ·Έλλ‘ λκ³ μ€λ³΅ μ κ±°
var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
var uniq = names.reduce(function (a, b){
if (a.indexOf(b) < 0 ) a.push(b);
return a;
},[]);
console.log(uniq, names) // [ 'Mike', 'Matt', 'Nancy', 'Adam', 'Jenny', 'Carl' ]
// ν μ€λ‘ νν
return names.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]);
κΈ°μ‘΄μμλ κ·Έλλ‘ λκ³ μ€λ³΅ μ κ±°
var uniq = names.slice() // μ λ ¬νκΈ° μ μ 볡μ¬λ³Έμ λ§λ λ€.
.sort(function (a, b){
return a - b;
})
.reduce(function (a, b){
if (a.slice(-1)[0] !== b) a.push(b); // slice(-1)[0] μ ν΅ν΄ λ§μ§λ§ μμ΄ν
μ κ°μ Έμ¨λ€.
return a;
},[]); //aκ° μμλ λλ₯Ό μν λΉμ΄μλ λ°°μ΄
// ν μ€λ‘ νν
return names.slice().sort(function(a,b){return a - b}).reduce(function(a,b){if (a.slice(-1)[0] !== b) a.push(b);return a;},[]);
indexOf
Description
indexOf
λ©μλλ λ°°μ΄μμ μ§μ λ μμλ₯Ό μ°Ύμ μμλ 첫 λ²μ§Έ μΈλ±μ€λ₯Ό λ°ννκ³ μ‘΄μ¬νμ§ μμΌλ©΄ -1
μ λ°νν©λλ€.
Syntax
arrayObj.indexOf(element)
Parameter
- arrayObj
- λ°°μ΄ κ°μ²΄
- element
- μ°Ύμ μμ
Example
var a = [2, 9, 9];
a.indexOf(2); // 0
a.indexOf(7); // -1
if (a.indexOf(7) === -1) {
// μμκ° λ°°μ΄μ μ‘΄μ¬νμ§ μμ΅λλ€.
}
Polyfill
- IE 8 μ΄ν μ§μ μν¨
var indexOf = Array.prototype.indexOf || (function (prop, s) {
for (var i = (s || 0); i < this.length; i++) {
if (this[i] === prop) { return i; };
}
return -1;
});
if (indexOf.call(arrayObj, value) > -1) {
console.log('value is contain');
} else {
console.log('value is not contain');
}
β Intersection Observer Function β