アレイの組み込み方法によるトラブルシューティング
8388 ワード
配列の組み込みメソッドを使用して、配列の中で最も短い文字列要素を返します.
重複文の使用を禁止する(for,while)
配列には文字列以外の要素を含めることができます
I/O例
重複文の使用を禁止する(for,while)
配列には文字列以外の要素を含めることができます
I/O例
let result = findShortestString([7, 'cat', 9, 'rainbow']);
console.log(result); //'cat'
My Solution Codefunction findShortestString(arr) {
// 배열안의 요소들 중 가장 짧은 길이를 가진 문자열 요소를 리턴해야 된다.
// 배열안에서 우선 문자열들로 구성된 요소들을 먼저 처리한다.
// 요소가 문자열일 경우 true를 리턴해서 배열을 반환한다.
let strArr = arr.filter(function(el) {
if(typeof el === 'string') {
return true;
}
});
// 빈 배열을 입력받은 경우, 빈문자열을 리턴
// 문자열만 담은 배열에서 만약 주어진 배열에 문자열이 없는 경우, 빈 문자열을 리턴
if(arr.length === 0 || strArr.length === 0) {
return '';
}
// 문자열만 담긴 배열에 reduce() 메서드를 활용
let shortWord = strArr.reduce(function(acc, cur) {
//누적값의 길이가 현재값보다 클 경우
if(acc.length > cur.length) {
//누적값에 현재값의 길이를 넣어줌
acc = cur;
}
//누적값을 리턴
return acc;
}, strArr[0]); //초기값으로 배열의 0번째 요소를 넣어줌
return shortWord; //가장 짧은 문자열 요소를 리턴
}
Reference Codefunction findShortestString(arr) {
// 매개변수로 들어온 배열을 filter() 메서드를 사용해서
// 각각의 요소들의 타입이 'string'일 경우 리턴한다.
const onlyStrings = arr.filter(function (el) {
return typeof el === 'string';
});
// 빈 배열을 입력받은 경우 빈 문자열 리턴
if (onlyStrings.length === 0) {
return '';
}
// 각각의 요소들이 string인 배열을 가지고, reduce() 메서드를 사용
return onlyStrings.reduce(function (acc, cur) {
//누적값의 길이가 현재값보다 짧을 때 누적값에 짧은 길이를 넣는다.
if (acc.length <= cur.length) {
return acc;
} else {
//누적값이 길 때 현재값을 리턴한다.
return cur;
}
});
}
Reference
この問題について(アレイの組み込み方法によるトラブルシューティング), 我々は、より多くの情報をここで見つけました https://velog.io/@jy777hi/배열의-내장-메서드를-사용해서-문제-해결テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol