배열에서 가장 긴 찾기 찾기
string 형 배열에서 가장 긴 문자열을 찾는 짧은 방법이 있습니까?
같은 거 arr.Max(x => x.Length);
?
var longest = arr.sort(function (a, b) { return b.length - a.length; })[0];
아마도 더 효율적일 수 있지만 자바 스크립트 1.8 / 인 ECMAScript 5 부터 만 사용할 수 있으며 이전 브라우저에서는 기본적으로 사용할 수 없습니다.
var longest = arr.reduce(function (a, b) { return a.length > b.length ? a : b; });
이전 질문에 대한 새로운 답변 : ES6에서는 더 짧게 할 수 있습니다.
Math.max(...(x.map(el => el.length)));
나는 이렇게 할 것이다
var arr = ['first item', 'second item is longer than the third one',
'third longish item'];
var lgth = 0;
var longest;
for(var i=0; i < arr.length; i++){
if(arr[i].length > lgth){
var lgth = arr[i].length;
longest = arr[i];
}
}
alert(longest);
http://jsfiddle.net/jasongennaro/MLqLq/
var arr = [ 'fdgdfgdfg', 'gdfgf', 'gdfgdfhawsdgd', 'gdf', 'gdfhdfhjurvweadsd' ];
arr.sort(function (a, b) { return b.length - a.length })[0];
Array.prototype 사용-(정렬은 바이올린을 연주하는 동안 @katsPaugh 및 @deceze가 게시 한 것과 유사합니다)
여기 견본
var arr = [
"2 --",
"3 ---",
"4 ----",
"1 -",
"5 -----"
];
Array.prototype.longest=function() {
return this.sort(
function(a,b) {
if (a.length > b.length) return -1;
if (a.length < b.length) return 1;
return 0
}
)[0];
}
alert(arr.longest());
나는 가장 짧은 해결책을 본다
function findLong(s){
return Math.max.apply(null, s.split(' ').map(w => w.length));
}
기능 + 재귀 접근 방식을 제공합니다. 작동 방식을 이해하기 위해 주석을 참조하십시오.
const input1 = ['a', 'aa', 'aaa']
const input2 = ['asdf', 'qwer', 'zxcv']
const input3 = ['asdfasdf fdasdf a sd f', ' asdfsdf', 'asdfasdfds', 'asdfsdf', 'asdfsdaf']
const input4 = ['ddd', 'dddddddd', 'dddd', 'ddddd', 'ddd', 'dd', 'd', 'd', 'dddddddddddd']
// Outputs which words has the greater length
// greatestWord :: String -> String -> String
const greatestWord = x => y =>
x.length > y.length ? x : y
// Recursively outputs the first longest word in a series
// longestRec :: String -> [String] -> String
const longestRec = longestWord => ([ nextWord, ...words ]) =>
// ^^^^^^^^^^^^
// Destructuring lets us get the next word, and remaining ones!
nextWord // <-- If next word is undefined, then it won't recurse.
? longestRec (greatestWord (nextWord) (longestWord)) (words)
: longestWord
// Outputs the first longest word in a series
// longest :: [String] -> String
const longest = longestRec ('')
const output1 = longest (input1)
const output2 = longest (input2)
const output3 = longest (input3)
const output4 = longest (input4)
console.log ('output1: ', output1)
console.log ('output2: ', output2)
console.log ('output3: ', output3)
console.log ('output4: ', output4)
나는 Jason의 기능에 영감을 받아 약간의 개선을 결과적으로 검색 속도가 빨라집니다.
function timo_longest(a) {
var c = 0, d = 0, l = 0, i = a.length;
if (i) while (i--) {
d = a[i].length;
if (d > c) {
l = i; c = d;
}
}
return a[l];
}
arr=["First", "Second", "Third"];
var longest = timo_longest(arr);
속도 결과 : http://jsperf.com/longest-string-in-array/7
다음과 같이 할 것입니다.
function findLongestWord(str) {
var array = str.split(" ");
var maxLength=array[0].length;
for(var i=0; i < array.length; i++ ) {
if(array[i].length > maxLength) maxLength = array[i].length}
return maxLength;}
findLongestWord("What if we try a super-long word such as otorhinolaryngology");
분할이 이미 배열로 분할 된 분할 부분이 필요합니다.
function findLongestWord(str) {
str = str.split(' ');
var longest = 0;
for(var i = 0; i < str.length; i++) {
if(str[i].length >= longest) {
longest = str[i].length;
}
}
return longest;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
아마도 가장 빠르지는 않지만 확실하게 읽을 수 있습니다.
function findLongestWord(array) {
var longestWord = "";
array.forEach(function(word) {
if(word.length > longestWord.length) {
longestWord = word;
}
});
return longestWord;
}
var word = findLongestWord(["The","quick","brown", "fox", "jumped", "over", "the", "lazy", "dog"]);
console.log(word); // result is "jumped"
forEach 배열 함수 는 IE9 +부터 지원되었습니다 .
하나 이상의 최대 값을 예상하는 경우 다음과 같이 작동합니다.
_.maxBy(Object.entries(_.groupBy(x, y => y.length)), y => parseInt(y[0]))[1]
lodash를 사용하고 배열을 반환합니다.
var longest = (arr) => {
let sum = 0
arr.map((e) => {
sum = e.length > sum ? e.length : sum
})
return sum
}
그것은 일이 될 수 있습니다
function findLongestWord(str) {
str = str.split(" ");
var sorted = str.sort(function(prev,current){
return prev.length - current.length;
});
var index = sorted.length;
str = sorted[index-1];
return str;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
ES6 지원으로 꾸몄습니다.
var allLongestStrings = arrayOfStrings => {
let maxLng = Math.max(...arrayOfStrings.map( elem => elem.length))
return arrayOfStrings.filter(elem => elem.length === maxLng)
}
let arrayOfStrings = ["aba", "aa", "ad", "vcd","aba"]
console.log(allLongestStrings(arrayOfStrings))
var array = ["hello","falsey","undefined"];
var findLongestWord = function(array){
var longest = array.reduce(function(a,b){
return (a.length > b.length) ? a : b;
});
return longest;
}
findLongestWord(array);
이것은 매우 간단한 버그 코드입니다. 버그를 고칠 시간은 없지만 아이디어를 얻을면 변경하여 사용할 수 있습니다.
Array.prototype.MaxBy = function(fn) {
var max = 0;
var element;
for (var i = 0; i < this.length; i++) {
var ret = fn(this[i]);
if (ret > max) {
max = ret;
element = this[i];
}
}
return element;
};
function showOldestPerson() {
var array = [{ Name: "cihat", Age: 28 }, { Name: "Ali", Age: 30 }, { Name: "Kutlu", Age: 27}];
var person = array.MaxBy(function(item) {
return item.Age;
});
alert(person.Name);
}
참고 URL : https://stackoverflow.com/questions/6521245/finding-longest-string-in-array
'ProgramingTip' 카테고리의 다른 글
변수가 상수라고하는 것을 이미 알고 있는데 왜 const 키워드를 사용합니까? (0) | 2020.11.09 |
---|---|
유용한 Eclipse 기능? (0) | 2020.11.09 |
삼항 연산자? : vs if… else (0) | 2020.11.09 |
주어진 파일을 포함하는 파일 시스템의 크기와 여유 공간 찾기 (0) | 2020.11.09 |
설치 후 awscli가 경로에 추가되지 않음 경고 (0) | 2020.11.09 |