Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与对象属性混淆。我如何不得到“未定义”?_Javascript_Arrays_Object_Dictionary_Prototype - Fatal编程技术网

Javascript 与对象属性混淆。我如何不得到“未定义”?

Javascript 与对象属性混淆。我如何不得到“未定义”?,javascript,arrays,object,dictionary,prototype,Javascript,Arrays,Object,Dictionary,Prototype,我试图为字母表中的每个字母创建一个包含两个属性的对象的数组。字母和dd_数组。现在我正在设置dd_array=[],但我希望它是相应的morseDic属性 例如{charObjArray[0]={letter:'a',dd_数组:[0,1]} 我能得到一些关于如何尽可能最好地编写代码的提示吗 alpha_array = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v",

我试图为字母表中的每个字母创建一个包含两个属性的对象的数组。字母和dd_数组。现在我正在设置dd_array=[],但我希望它是相应的morseDic属性

例如{charObjArray[0]={letter:'a',dd_数组:[0,1]}

我能得到一些关于如何尽可能最好地编写代码的提示吗

alpha_array = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];

morseDic = {
    a: [0,1],
    b: [1,0,0,0],
    c: [1,0,1,0],
    d: [1,0,0],
    e: [0],
    f: [0,0,1,0],
    g: [1,1,0],
    h: [0,0,0,0],
    i: [0,0],
    j: [0,1,1,1],
    k: [1,0,1],
    l: [0,1,0,0],
    m: [1,1],
    n: [1,0],
    o: [1,1,1],
    p: [0,1,1,0],
    q: [1,1,0,1],
    r: [0,1,0],
    s: [0,0,0],
    t: [1],
    u: [0,0,1],
    v: [0,0,0,1],
    w: [0,1,1],
    x: [1,0,0,1],
    y: [1,0,1,1],
    z: [1,1,0,0]
}

function _alpha(_char, dd_array) {
    this.letter = _char;
    this.dd_array = dd_array;
}


var _charObjArray = []
for (i = 0; i < alpha_array.length; i++) {
    var _charNow = alpha_array[i];
    var __charNow = _charNow;
    var __charNow = new _alpha(_charNow, "[]") // "[]" should be replaced with the _charNow corresponding property from morseDic
    _charObjArray.push(__charNow)
}

console.log(_charObjArray);
在α中,而不是:

this.dd_array = dd_array;
…使用_char索引到morseDic对象:

…然后根本不要把第二个参数传递给_alpha

但如果您想将其作为参数传递给_alpha:

var __charNow = new _alpha(_charNow, morseDic[_charNow]);
在JavaScript中,您可以使用点符号和属性名literal obj.foo或morseDic.a访问对象属性,也可以使用括号符号和属性名字符串*obj[foo]或morseDic[a]。在后一种情况下,字符串可以是任何表达式的结果,包括变量查找


*在ES6中,它将是字符串或符号。

new\u alpha\u charNow,morseDic[\u charNow]?为什么[]它是字符串而不是数组?我不明白你为什么要把事情复杂化。您已经有一个键数组和相应的对象文字。你已经得到了你所需要的一切。
var __charNow = new _alpha(_charNow, morseDic[_charNow]);