Есть ли способ сделать определенные строки или значения эквивалентными другим строкам или значениям в JS? - PullRequest
0 голосов
/ 05 мая 2020

Можете ли вы сделать строку или значение, такое как слово «Pinapple», эквивалентным числу 5, чтобы операторы if if("Pineapple" == 5) были истинными? Я пытаюсь выучить японский язык и использую редактор скриптов Google Таблиц, и если бы существовал способ сделать "海洋" = "Ocean" или "A" = "あ", мне было бы действительно полезно. В частности, то, что я пытаюсь сделать, - это иметь возможность назначать значения слов, чтобы я мог упростить текущий запутанный код, который у меня есть в настоящее время:

function Check(Cell,check) {
  if(Cell=='あ' && check.toUpperCase()!='A'){
    return "X"}
  else if(Cell=='あ' && check.toUpperCase()=='A'){
    return "✓"}
  else if(Cell=='い' && check.toUpperCase()!='I'){
    return "X"}
  else if(Cell=='い' && check.toUpperCase()=='I'){
    return "✓"}
  else if(Cell=='う' && check.toUpperCase()!='U'){
    return "X"}
  else if(Cell=='う' && check.toUpperCase()=='U'){
    return "✓"}
  else if(Cell=='え' && check.toUpperCase()!='E'){
    return "X"}
  else if(Cell=='え' && check.toUpperCase()=='E'){
    return "✓"}
  else if(Cell=='お' && check.toUpperCase()!='O'){
    return "X"}
  else if(Cell=='お' && check.toUpperCase()=='O'){
    return "✓"}
}

и

function RandomVowel(max) {
  var array = ["あ","い","う","え","お"];
  var RandomValue = array[Math.floor(Math.random() * array.length)];
  return RandomValue
}

Чем больше символов, которые я добавляю, тем более запутанным он становится, поэтому мне нужен более простой способ сделать это, и если есть способ назначать значения слов, это было бы намного проще. Помимо присвоения строкам значений конкретно, более простой метод для того, что я пытаюсь выполнить sh любым методом, также будет принят и оценен.

EDIT: Чтобы уточнить больше, я хочу сделать вещи универсальными equal вместо того, чтобы вызывать определенное c значение из массива, чтобы сделать его равным. Я хочу, чтобы если я сравнил две разные ячейки, когда одна из них - «А», а другая - «», сравнение было бы верным. Например, если Cell - A1, а check - A2, где A1 - «A», а A2 - «あ», сравнение if(Cell==A2){return "They are the same"} вернет «Они одинаковы», поскольку два значения будут глобально равны. Я не пытаюсь специально сравнивать значения, которые я определил или которые находятся в одном массиве, но я также хочу сравнить значения ячеек, которые не отформатированы таким образом, чтобы удовлетворить сравнение, например array['え']=='E', поскольку значение в ячейках Google Sheet это не array['value'], а обычный текст.

1 Ответ

1 голос
/ 05 мая 2020

Допустим, вы хотите установить следующие строки как эквивалентные:

  1. "5" == "Pineapple"
  2. "海洋" == "Ocean"
  3. "あ" == "A"

Затем я бы использовал объект javascript с именем myDictionary, чтобы настроить это:

var myDictionary = {
  "5": "Pineapple",
  "海洋": "Ocean",
  "あ": "A"
}

И затем вместо записи if("5" == "Pineapple") или if("海洋" == "Ocean") напишите:

if (myDictionary["5"] == "Pineapple") {
  ...
}

if (myDictionary["海洋"] == "Ocean") {
  ...
}
...