javascript - 字符串 - 如何使用javascript确定哪个变量具有最多的字符

如何确定哪个变量具有最多的字符。

例如:

 

var one = "qwert" ;


var two = "qwertyu" 


var three = "qwertyuiop" ;



如何确定哪个变量具有最多的字符。

我要做的第一件事是计算每个字符串中的字符数。

 

var onelength = one.length;


var twolength = two.length;


var threelength = three.length;



时间:

try

 

[one,two,three].reduce((a,c) => a.length>c.length? a:c,'');



 

var one = "qwert" ;


var two = "qwertyu" ;


var three = "qwertyuiop" ;



let r= [one,two,three].reduce((a,c) => a.length>c.length? a:c,'');



let v= Object.entries({one,two,three}).reduce((a,c) => a[1].length>c[1].length? a:c,['','']);



console.log('longest variable:', v[0], '=', r);

只要执行Math.max();

例如:

 

Math.max(onelength, twolength, threelength);



这将返回最高值。

 

var words=['ape','parrot','elephant'];



console.log( longestWord( words ) );



function longestWord( words ){


 var longest = '';


 words.forEach(function(element){


 if(longest.length <element.length)


 longest = element;


 });


 return longest;


}



你不需要使用JQuery进行这个操作,如果将字符串保存在数组中:

 

const a = [" qwert" ," qwertadf" ," qwertfasdf" ]



你可以使用此(使用es2015功能):

 

let max_length = Math.max(...a.map(e=>e.length))



如果要了解更大的元素,可以使用以下方法:

 

a.findIndex(e => e.length === ml)



实际上,在Javascript(或者在大多数语言中)中没有办法做到这一点。

你要求的是一种反射,概念上是一个函数nameOfVariable,它使用变量,并且给你它的字符串名称:

 

nameOfVariable(one): 'one'



不可能。

上面的答案是尝试解决这个问题。最终在实际代码中,这将不是一个变量包,而且是一个对象(这,就像是一个变量包,除了你可以恢复名字),

 

const strings = {


 one: 'abcde',


 two: 'abcdef',


 three: 'abcd',


};



//Return key in object corresponding to longest string, 


//or null if object is empty.


const longest_string = strings => {


 let max = null;


 for (let name in strings) {


 if (max === null || strings[name].length> strings[max].length) {


 max = name;


 }


 }


 return max;


}



console.log(longest_string(strings));
...