In this kata you will create a function that takes a list of non-negative integers and strings and returns a new list with the strings filtered out.
function filter_list(l) {
// 새로운 빈 배열 선언 할당
newArr = [];
// for of 반복문사용해 만약 요소값의 타입이 숫자면 newArr에 푸쉬해줌
for (let value of l) {
if (typeof (value) === 'number' ) {
newArr.push(value);
}
}
return newArr;
}
function filter_list(l) {
return l.filter(function(v) {return typeof v == 'number'})
}
Array.prototype.filter()
filter()
메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
filter() 메서드를 몇번 본적이 있는데 아직까지 익숙치 않다...
Implement the function unique_in_order which takes as argument a sequence and returns a list of items without any elements with the same value next to each other and preserving the original order of elements.
var uniqueInOrder=function(iterable){
// 빈 배열 선언 할당
let result = [];
if (iterable.length === 0) return result;
result.push( iterable[0] );
// 문자열에 반복문 사용
// 1번째 문자 추가
// 2번째 문자를 보는데 만약 1번째 문자랑 같으면 스킵
// 안같으면 추가
for (let i = 1; i < iterable.length; i++) {
if (iterable[i] !== iterable[i - 1]) {
result.push( iterable[i] );
}
}
// 배열 리턴
return result;
}
function uniqueInOrder(it) {
var result = []
var last
for (var i = 0; i < it.length; i++) {
if (it[i] !== last) {
result.push(last = it[i])
}
}
return result
}
포인트
어떻게 겹친 문자를 쓰게 하지 않을것인가? 새로운 빈 배열을 정하고 계속 푸쉬!
새로 배운 것
null
느낀점
다른 풀이를 보면서 느낀점은 내가 result = []이거 까지는 잘한것 같은데
for 구문을 i = 1부터 시작 했음.
그러면 i = 0 일때는 어떻게 해야되는지 막 고민해서 결국 땜빵식으로 코드를 작성했음.
근데 다른풀이를 보니까 기가막힌다..