카테고리 없음
항해3주차 자바스크립트 프로그래머스 - 제일 작은 수 제거하기(unshift,shift,splice,push,pop)
완두노예
2023. 2. 1. 14:40

처음 풀이
//sort 오름차순에서 제일 앞에거 제거
//arr 배열 for문 돌리기
//제일 작은수(앞에거) 빼고 다시배열
//배열 길이가 ==1이면 -1 리턴
// function solution(arr) {
// var answer = 0;
// sort.arr = 3, 4, 5, 1, 8;
// console.log(arr)
// }
const arr = [4, 3, 2, 1];
arr.sort(function (a, b) {
return a - b;
});
arr.shift()
for (let arr = 0; arr >= 1; arr++) //arr>=1이 길이가 1이상?숫자를 1 이상 대입?
return arr.sortfunction(a, b) {
return b - a;
};
else arr.length == 0
return -1
console.log(arr)
수정 풀이 다시 복습
//오름차순 배열말고
//배열중 가장 작은숫자min골라서 제거
function solution(arr){
if(arr.length === 1) return [-1];
// 이부분부터 복습
let i = 0
for (let j = 0; j<arr.length; j+=1) {
if (arr[i]>arr[j]) i = j;
}
arr.splice(i, 1);
return arr;
}
다른 풀이
function solution(arr) {
arr.splice(arr.indexOf(Math.min(...arr)),1);
if(arr.length<1)return[-1];
return arr;
}
function solution(arr) {
const min = Math.min(...arr);
return arr.length !== 1 ? arr.filter(i => i !== min) : [-1]
}
function solution(arr) {
if (arr.length > 1) {
var minNum = Math.min(...arr);
var idx = arr.indexOf(minNum);
arr.splice(idx, 1);
} else {
arr = [-1];
}
return arr;
}
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
}
function solution(arr) {
if(arr.length === 1) return[-1];
let i = 0;
for (let j = 1; j<arr.length; j++){
if(arr[j]<arr[i]) {
i=j;
}
}
arr.splice(i,1);
return arr;
}
function solution(arr) {
var a=Math.min.apply(null,arr);
arr.splice(arr.indexOf(a),1);
if(arr[0]==undefined)
return [-1];
else
return arr;
}
function solution(arr) {
var min = arr[0];
for(var i = 1; i < arr.length; i++) {
if(min > arr[i]) min = arr[i];
}
arr.splice(arr.indexOf(min), 1);
if(arr.length) return arr;
else return [-1];
}
function solution(arr) {
let copyArr = arr.slice();
if(arr.length <= 1) return [-1];
copyArr.sort((a, b) => a - b);
let remove = copyArr.shift()
arr.splice(arr.indexOf(remove),1)
return arr;
}
1. unshift() : 배열 맨 앞에 요소 추가
새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환한다
const array1 = [1, 2, 3];
console.log(array1.unshift(4, 5));
// Expected output: 5
console.log(array1);
// Expected output: Array [4, 5, 1, 2, 3]
1-1 unshift() : 여러 요소를 배열에 추가
1개 이상의 요소를 배열의 맨 앞에 추가 가능.
const arr = [1, 2, 3];
arr.unshift('a', 'b', 'c');
console.log(arr)
//['a', 'b', 'c', 1, 2, 3] 반환
2. shift() : 배열 맨 앞의 요소 제거
0번째 위치의 요소를 제거하고 연이은 나머지 값들의 위치를 한칸 씩 앞으로 당긴다. 제거된 값 반환.
만약 배열의 length가 0이라면 undefined를 리턴한다.
var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];
console.log('myFish before: ' + myFish);
// "제거전 myFish 배열: angel,clown,mandarin,surgeon"
var shifted = myFish.shift();
console.log('myFish after: ' + myFish);
// "제거후 myFish 배열: clown,mandarin,surgeon"
console.log('Removed this element: ' + shifted);
// "제거된 배열 요소: angel"
3. splice() : 배열의 맨 앞에 요소를 추가하거나 삭제 가능
배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
start 배열의 변경을 시작할 인덱스임. deletecount는 배열에서 제거할 요소의 수. item1, item2..배열에 추가할 요소
예를 들어, splice(0, 0, 'A')는 배열의 Index 0에서 0개 요소를 삭제하고, A를 추가한다. 즉, 배열 맨 앞에 A를 추가한다.
array.splice(startIndex, deleteCount, item1, item2, ...)
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb'); //1번째 인덱스에 삽입,제거할 요소 0개,집어넣을 대상
// Inserts at index 1
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// Replaces 1 element at index 4//4번째 인덱스 1개 삭제후 may삽입
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "May"]
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum');//하나도 제거X2번 인덱스에 drum추가
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed is [], no elements removed
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum', 'guitar');
//하나도 제거하지 않고 2번 인덱스에 drum과 guitar 추가
// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed is [], no elements removed
var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);
//3번 인덱스에서 한 개 요소 제거
// removed is ["mandarin"]
// myFish is ["angel", "clown", "drum", "sturgeon"]
var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, 'trumpet');
//2번 인덱스에서 한 개 요소 제거하고 trumpet추가
// myFish is ["angel", "clown", "trumpet", "sturgeon"]
// removed is ["drum"]
var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
//0번 인덱스에서 두 개 요소 제거하고 parrot과anemone,blue 추가
// myFish is ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed is ["angel", "clown"]
var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(myFish.length - 3, 2);
//인덱스에서 두 개 요소 제거
// myFish is ["parrot", "anemone", "sturgeon"]
// removed is ["blue", "trumpet"]
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);
//-2번 인덱스에서 한 개 요소 제거
// myFish is ["angel", "clown", "sturgeon"]
// removed is ["mandarin"]
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);
//2번 인덱스를 포함해서 이후의 모든 요소 제거
// myFish is ["angel", "clown"]
// removed is ["mandarin", "sturgeon"]
4. push :배열 맨 뒤에 요소 추가
배열의 끝에 하나 이상의 요소를 추가하고 배열의 새로운 길이를 반환.
const animals = ['pigs', 'goats', 'sheep'];
const count = animals.push('cows');
console.log(count);
// Expected output: 4
console.log(animals);
// Expected output: Array ["pigs", "goats", "sheep", "cows"]
animals.push('chickens', 'cats', 'dogs');
console.log(animals);
// Expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]
//구문
arr.push(element1[, ...[, elementN]])
//배열에 엘리먼트 추가 하기
var sports = ['축구', '야구'];
var total = sports.push('미식축구', '수영');
console.log(sports); // ['축구', '야구', '미식축구', '수영']
console.log(total); // 4
//두개의 배열을 합치기
var vegetables = ['설탕당근', '감자'];
var moreVegs = ['셀러리', '홍당무'];
// 첫번째 배열에 두번째 배열을 합친다.
// vegetables.push('셀러리', '홍당무'); 하는 것과 동일하다.
Array.prototype.push.apply(vegetables, moreVegs);
console.log(vegetables); // ['설탕당근', '감자', '셀러리', '홍당무']
5. pop : 배열의 맨 마지막 요소 제거
//구문
arr.pop()
//배열에서 제거한 요소. 빈 배열의 경우 undefined를 반환
const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop());
// Expected output: "tomato"
console.log(plants);
// Expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"]
plants.pop();
console.log(plants);
// Expected output: Array ["broccoli", "cauliflower", "cabbage"]
//배열의 마지막 요소 제거
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var popped = myFish.pop();
console.log(myFish); // ['angel', 'clown', 'mandarin' ]
console.log(popped); // 'sturgeon'