如何使用 javascript 计算出哪个变量具有最多的字符

How to work out which variable has the most characters using javascript

如何计算出哪个变量的字符最多。

例如:

var one = "qwert";
var two = "qwertyu"
var three ="qwertyuiop";

如何计算出哪个变量具有最多的字符。

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

var onelength = one.length;
var twolength = two.length;
var threelength = three.length;

我正在努力的部分是 javascript 计算出上述长度中哪一个具有最多的字符。

就这样Math.max();

示例:

Math.max(onelength, twolength, threelength);

这将 return 最高值。

尝试

[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);

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 中确实没有办法做到这一点(在大多数语言中也是如此)。

您要的是一种reflection。从概念上讲,一个函数 nameOfVariable 接受一个变量并在 return:

中给你它的字符串名称
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));