JS.연습문제 (제일 작은 수 제거하기)
<문제설명>
정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세용
리턴하려는 배열이 빈 배열일 경우에는 배열에 -1을 채워 리턴
function solution(arr) {
if (arr.length <= 1) {
return [-1]
}
else
let answer = []
for (let i = 0; i < arr.length; i++) {
if (arr[i] < arr[i+1]) {
answer = arr[i]
}
}
let minnumber = arr.filter(itme => answer);
return minnumber
}
arr에 값이 하나거나 없는 경우 -1을 리턴하도록 하고 그렇지않은 경우 반복문으로 배열에 0 인덱스부터 끝까지 비교해서 가장 작은 값을 answer에 집어넣었다
그리고 필터로 answer을 걸러지도록 했다
<다른사람의 풀이>
function solution(arr) {
if (arr.length <= 1) return [-1];
arr.splice(arr,indexOf(Math.min(...arr)), 1);
return arr
}
배열 arr에서 최솟값을 찾은후/ 그 인덱스를 하나 제거하고 반환하는 식이다.
-splice가 어떤식으로 쓰이는지 다시 보게됨
배열일 경우 Math.min "..."을 붙임
<또 다른사람의 풀이>
function solution(arr) {
if (arr.length === 1) {
return [-1]
}
const minValue = Math.min.apply(null, arr)
const index = arr.findIndex(value => value === minValue)
arr,splice(index, 1)
return arr
}
apply 메서드는 함수 객체의 메서드인데 두 번째 인자의 값으로 어레이르 받아 각 어레이의 요소를 함수의 인자로 전부 넘겨줌
-첫번째 인수는 해당 함수 내의 this에 연결되는 값으로 만약 this가 상관 없는 하무라면 별 의미가 없기 때문에 null이나 undefined를 넣어줌
findIndex() 메소드는 주어진 함수를 통과한 첫 번째 요소의 인덱스 값을 반환!
value가 minValue최솟값과 갔다면 해당 인덱스를 index에 넣음
splice로 해당 인덱스 하나를 제거!
Author And Source
이 문제에 관하여(JS.연습문제 (제일 작은 수 제거하기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tastestar/JS.연습문제-제일-작은-수-제거하기-dj0idy95저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)