0

I'm not sure how should I declare a multidimensional array in JavaScript.

Option 1 vs. Option 2 -- I don't know the correct terminology of each one.

Which one is the most correct/conventional? Knowing that both will generate the same results.

If neither, which manner is recommended?

Option 1:

const r_CLASS = [];

r_CLASS.selector = [];
r_CLASS.cl_name = [];
r_CLASS.cl_name_ext = [];

r_CLASS.selector.toggle = ".toggle";
r_CLASS.selector.container = ".container";
r_CLASS.selector.ctrl = ".controls";
r_CLASS.selector.ctrl_list = ".list";
r_CLASS.selector.ctrl_search = ".search";
r_CLASS.selector.ctrl_clear = ".clear";
r_CLASS.selector.chk = ".check";

r_CLASS.cl_name.toggle = "toggle";
r_CLASS.cl_name.container = "container";
r_CLASS.cl_name.ctrl = "controls";
r_CLASS.cl_name.ctrl_list = "list";
r_CLASS.cl_name.ctrl_search = "search";
r_CLASS.cl_name.ctrl_clear = "clear";
r_CLASS.cl_name.chk = "check";

r_CLASS.cl_name_ext.toggle = "toggle-zero";
r_CLASS.cl_name_ext.ctrl_search = "search-fail";

Option 2:

const r_CLASS = {

  selector: {

    toggle: ".toggle",
    container: ".container",
    ctrl: ".controls",
    ctrl_list: ".list",
    ctrl_search: ".search",
    ctrl_clear: ".clear",
    chk: ".check"
  },
  cl_name: {

    toggle: "toggle",
    container: "container",
    ctrl: "controls",
    ctrl_list: "list",
    ctrl_search: "search",
    ctrl_clear: "clear",
    chk: "check"

  },
  cl_name_ext: {

    toggle: "toggle-zero",
    ctrl_search: "search-fail"

  }

}
Edgaras
  • 404
  • 2
  • 16
  • 2
    The first approach is definitely wrong because `[]` indicates an array, not a plain object - arrays should generally only be used for value collections, not key-value pairs (which should be reserved for plain objects). After fixing that, it's opinion-based, but the second approach is a lot more readable IMO – CertainPerformance Aug 04 '22 at 21:35
  • are you saying the `Option 2` - `{}` is wrong too? I will use in my whole script. Example: `let e = document.querySelector(r_CLASS.selector.toggle);` -- Is it wrong? – Edgaras Aug 04 '22 at 21:43
  • 1
    Option 2 is fine. Option 1 would be marginally OK if you used `{}` instead of `[]`. – CertainPerformance Aug 04 '22 at 21:43
  • Understood. By the way shall i use `""` or `''` ? – Edgaras Aug 04 '22 at 21:49
  • 1

0 Answers0