假设我有this代码:

var denti={}

function Dente() {
    this.ID = "";
    this.Tipologia = "";
    this.Lavorazione = "";
}

var dente = new Dente();
dente.ID="id1";
dente.Tipologia="tipo1";
dente.Lavorazione="lavoro1";
denti[dente.ID] = dente;

dente = new Dente();
dente.ID="id2";
dente.Tipologia="tipo1";
dente.Lavorazione="lavoro2";
denti[dente.ID] = dente;

dente = new Dente();
dente.ID="id3";
dente.Tipologia="tipo1";
dente.Lavorazione="lavoro1";
denti[dente.ID] = dente;


我需要检查所有字段TipologiaLavorazione是否相同。

在这种情况下,我要求CheckArrayTipologia()的函数应返回true(所有.Tipologia字段值都相同,tipo1)。

相反,CheckArrayLavorazione()应该返回false(它们不是全部lavoro1,而是一个lavoro2)。

您将如何在Javascript / jQuery中快速执行此操作?

最佳答案

这可以解决您的问题:

function CheckArrayTipologia() {
    var tipologia;

    for (dente in denti) {
        if (!tipologia) {
            tipologia = dente.Tipologia;
            continue;
        }

        if (tipologia !== dente.Tipologia) {
            return false;
        }
    }

    return true;
}


DEMO

或搭配Lodash,简称:

function CheckArrayTipologia() {
    var values = _.values(denti);
    return _.every(values, 'Tipologia', _.first(values).Tipologia);
}


DEMO

08-16 15:40