문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
나의 문제풀이
function solution(arr, divisor) {
let answer = []
for (let i = 0; i < arr.length; i++) {
if (arr[i] % divisor === 0) {
answer.push(arr[i])
}
}
if (answer.length === 0) {
answer.push(-1)
}
answer.sort((a, b) => a - b)
return answer
}
arr.sort([compareFunction])
1) 문자정렬
let fruit = ['orange', 'apple', 'banana']
fruit.sort()
// apple, banana, orange
2) 숫자정렬
let score = [4, 11, 2, 10, 3, 1]
score.sort()
-> 1, 10, 11, 2, 3, 4
-> ASCII 문자 순서로 정렬되어 숫자의 크기대로 나오지 않음
score.sort((a, b) => a - b)
score.sort((a, b) => b - a)
3) object 정렬
let student = [
{ name: '안', age : 21},
{ name: '녕', age : 15},
{ name: '하', age : 14},
{ name: '세', age : 55},
]
// 이름순
// 오름차순
student.sort((a,b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)
// 내림차순
student.sort((a,b) => a.name > b.name ? -1 : a.name < b.name ? 1: 0)
nameResult = nameAge.sort(function(a,b) {
let x = a.name.toLowerCase()
let y = b.name.toLowerCase()
if (x < y) {
return -1
}
if (x > y) {
return 1
}
return 0
})
// 나이순
let sortingField = "age"
// 오름차순
student.sort((a,b) => a[sortingField] - b[sortingField])
// 내림차순
student.sort((a,b) => b[sortingField] - a[sortingField])