Javascript

🌟추천🌟유용한 array

킹king 2021. 1. 16. 20:49
반응형

1. array를 object로 빠르게 만들기

var arr = ['mon', 'tue', 'wed'];

var obj = {...arr}; // {0: "mon", 1: "tue", 2: "wed"}

 

 

2. 두개 이상 array를 병합하기(concat, push말고)

var arr1 = [1, 2, {name: 'jj'}];
var arr2 = [3, 4, [5, 6]];

var mergeArr = [...arr1, ...arr2]; // [1, 2, {name: 'jj'}, 3, 4, [5, 6]]

 

 

3. map()쓰지 않고 특정 value만 꺼내기

var students = [
    {name: 'hobs', age: 33},
    {name: 'marry', age: 54},
    {name: 'jacob', age: 23}
];

var aa = Array.from(students, (v) => v.name);

 

 

4. 중복값 아예 거르기

var arr = ['mon', 'tue', 'wed', 'mon', 'sun'];

var newArr = arr.filter((item) => arr.indexOf(item) === arr.lastIndexOf(item)); // ["tue", "wed", "sun"]

원리는

'mon'이 하나만 있다면 indexOf와 lastIndexOf가 동일할것임을 이용하는것임.

둘이 일치하면 해당 array에 1개만 있다는 의미라서 남겨두고,

일치하지 않으면 버려버림.

 

 

5. 중복값 하나만 거르기

var arr = ['mon', 'tue', 'wed', 'mon', 'sun'];

// 1. new Set()
var newArr1 = [...new Set(arr)];
var newArr2 = Array.from(new Set(arr));

// 2. filter()
var newArr3 = arr.filter((item, index) => arr.indexOf(item) === index);

2번 원리는

arr.indexOf(item) = arr에서 찾은 'mon'의 인덱스

index = 'mon'의 인덱스

를 비교하는 것임.

 

문제는 3번째 인덱스인 'mon'은

arr.indexOf(item) = 0이고

index = 3으로 나오기때문에

불일치해서 filter에 걸리지못하고 빠짐.

 

그래서 중복값이 걸러지는 것임.

 

 

6. 두개 이상 array에서 서로 중복값인걸 찾기

var arr1 = [0, 2, 4, 6, 8, 8];
var arr2 = [1, 2, 3, 4, 5, 6];

// 먼저 위에 쓴 4번 작업을 해줌.
arr1 = arr1.filter((item, index) => arr1.indexOf(item) === index); // [0, 2, 4, 6, 8]

var mergeArr = arr1.filter((item) => arr2.includes(item)); // [2, 4, 6]

 

 

7. falsy 값만 걸러내기

var arr = [0, “blue”, “”, NaN, 9, true, undefined, “white”, false];

var trueArr = arr.filter(Boolean); // [“blue”, 9, true, “white”]

 

 

8. 랜덤값 나오게하기

var num = [1,2,3,4,5];
var randomNum = num[(Math.floor(Math.random() * (num.length)))]

 

 

사실 총 13개인데 8개만 적어봄

www.blog.duomly.com/13-useful-javascript-array-tips-and-tricks-you-should-know/