Javascript对象vs var / array

时间:2017-10-07 08:13:49

标签: javascript arrays var

我正在学习JavaScript / HTML / CSS,我有这个:

我的问题是,如果我这样做或使用数组或3个变量,这是否重要?我只是这样做,因为我觉得它看起来更好,但我想知道“最好”或“正确”的做法是什么。对于数组,我只能用kzh [0],kzh [1],kzh [2]访问数字,对吗?我认为使用数组看起来会让人感到困惑,因为你不知道数字代表什么,特别是如果它比我的小作业更复杂。

var kzh = {
    High: 0,
    Medium: 0,
    Low: 0
};

function addKZH(x) {
    kzh[x]++;
    alert(kzh[x]);
}

这让我感到多余......

var kzhHigh = 0;
var kzhMedium = 0;
var kzhLow = 0;

function addKZHhigh() {

    kzhHigh++;
    alert(kzhHigh);
}
function addKZHmedium() {

    kzhMedium++;
    alert(kzhMedium);
}
function addKZHlow() {

    kzhLow++;
    alert(kzhLow);
}

2 个答案:

答案 0 :(得分:0)

对于数组而言,它变得令人困惑,因为您只能访问索引而不能访问变量/属性的名称。

然而,使用对象属性以及独立变量和函数的方式都是正确的。但是在编程中我们总是寻找代码可重用性,并且对于类似任务使用3个函数并不是一个好主意。此外,由于变量也是相关的,我们可以使它们成为单个对象的属性,以减少变量的数量,提高可读性并在它们之间显示关系。所以使用对象是我推荐的方式。

var kzh = {
    High:0,
    Medium:0,
    Low:0
};

function addKZH(x) {
        kzh[x]++;
        alert(kzh[x]);
}

addKZH("High");
addKZH("Medium");
addKZH("Low");

答案 1 :(得分:0)

javascript中的数组不仅使用键号。

var kzh = {High:0, Medium:0, Low:0}; kzh['High']++; alert(JSON.stringify(kzh));

输出 - > {高:1,中:0,低:0} https://jsfiddle.net/wmuev1a7/