var arr1 = ['a','b','b','c','d'];
var arr2 = ['a','b'];
var result = [];
// 정렬
arr1.sort();
arr2.sort();
for(let i in arr1) {
if(arr1[i] !== arr2[i]) result[i] = arr1[i];
}
// 빈값 제거
result = result.filter(x => x !== undefined);
console.log(arr1); // ['a', 'b', 'b', 'c', 'd']
console.log(arr2); // ['a', 'b', 'c']
// 중복 데이터도 각각의 데이터로 인식됨
console.log(result); // ['b', 'c', 'd']
var arr1 = ['a','c'];
var arr2 = ['c','e','f'];
var result = arr1.filter(x => arr2.includes(x));
console.log(result); // ['c']
Array.prototype.filter() : 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환 var arr = ['aaaaa','bbbb','ccc','dd'];
var result = arr.filter(x => x.length > 3);
console.log(result); // ['aaaaa','bbbb']
Array.prototype.includes() : 배열이 특정 요소를 포함하고 있는지 판별 var arr = ['a','b','c','d'];
var result1 = arr.includes('a');
var result2 = arr.includes('e');
console.log(result1); // true
console.log(result2); // false
var arr1 = ['a','b','b','c','d'];
var arr2 = ['a','b'];
var result = arr1.filter(x => !arr2.includes(x));
// 중복 데이터도 제외됨
console.log(result); // ['c','d']
var arr = ['a','b','b','c','d','b'];
var find = "b";
var result = [];
var index = arr.indexOf(find);
while(index != -1){
result.push(index);
index = arr.indexOf(find,index+1);
}
console.log(result); // [1,2,5]
Array.prototype.indexOf() : 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환 var arr = ['a','b','b','c','d','b'];
// array.indexOf(ele,fromIndex)
// fromIndex : 해당 index부터 찾기 시작
var index1 = arr.indexOf('b');
var index2 = arr.indexOf('b',3);
console.log(index1); // 1
console.log(index2); // 5
var array = ['a','b','b','c','d','b'];
let result = array.reduce((ac, v) =>
ac.includes(v) ?
ac : [...ac, v]
, []);
console.log(result); // ['a', 'b', 'c', 'd']
=> var ac = [], => ac.includes(v)=> ac=> [...ac, v]Array.prototype.reduce() : 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환 Array.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과; }, 초깃값);
const arr = [1, 2, 3];
result = arr.reduce((acc, cur, i) => {
console.log(acc, cur, i);
// 0 1 0
// 1 2 1
// 3 3 2
return acc + cur;
}, 0);
console.log(result); // 6
let obj = { a: 4, b: 0.5 , c: 0.35, d: 5 };
var arr = Object.keys( obj ).map(function ( key ) { return obj[key]; });
var min = Math.min.apply( null, arr );
var max = Math.max.apply( null, arr );
console.log(min)
var data = [
{ 'name': 'Vins', 'age': 27 },
{ 'name': 'Jan', 'age': 38 },
{ 'name': 'Alex', 'age': 80 },
{ 'name': 'Carl', 'age': 25 },
{ 'name': 'Digi', 'age': 40 }
];
var max = data.reduce(function (prev, current) {
return (prev.age > current.age) ? prev : current
});
console.log(max); // {name: 'Alex', age: 80}
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf