Как определить, какая переменная содержит больше символов, используя JavaScript - PullRequest
1 голос
/ 07 мая 2019

Как определить, какая переменная содержит больше символов.

Например:

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

Как определить, какая переменная имеет больше символов.

Первое, что я делаю, это подсчет количества символов в каждой строке.

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

Часть, над которой я борюсь, - это javascript, чтобы понять, какая из указанных длин имеет больше символов.

Ответы [ 5 ]

3 голосов
/ 07 мая 2019

Нет никакого способа сделать это в 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));
3 голосов
/ 07 мая 2019

попробуй

[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);
1 голос
/ 07 мая 2019

Вам не нужно использовать JQuery для этого.Если вы сохраняете строки в массиве:

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

, вы можете использовать это (используя функции ES2015):

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

Если вы хотите узнать больший элемент, вы можете использовать это:

a.findIndex(e => e.length === ml)
1 голос
/ 07 мая 2019
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;
}
0 голосов
/ 07 мая 2019

Просто сделайте Math.max();

Пример:

Math.max(onelength, twolength, threelength);

Это вернет самое высокое значение.

...