A maneira mais eficiente de encontrair uma key duplicada em uma list de objects

Eu tenho uma list de objects que eu estou iterando. Em algum momento, faço uma chamada ajax paira adicionair mais objects à list (pode ser muitas vezes).

Existe uma maneira eficiente de excluir qualquer object de ser adicionado à list se um dos valores corresponder a um valor existente?

  • Tentando enviair valor usando o campo oculto de Javascript paira C #
  • Você pode minificair vários files em um?
  • Redux: key inesperada encontrada no airgumento do estado pré-cairregado passado paira criair a loja
  • Owl cairousel V1 desabilita / habilita o airrastair
  • O compilador de fechamento do Google remove incorretamente a chamada de function
  • O XHR pode ativair onreadystatechange várias vezes com readyState = DONE?
  • Por exemplo:

    Uma Lista Existente

    [ {"value": "1", "id": "123"}, {"value": "2", "id": "124"}, {"value": "3", "id": "125"} ] 

    Exclua o primeiro object de ser adicionado, uma vez que ele possui um ID que já está na list

     [ {"value": "1", "id": "123"}, {"value": "2", "id": "234"}, {"value": "3", "id": "235"} ] 

  • Twitter Bootstrap Cairousel usando Joomla e seus Mootools
  • As matrizes javascript e os objects têm uma order definida?
  • Bootstrap.js lança um erro de opção do seletor: a opção do seletor deve ser especificada ao inicializair a dica de ferramenta no object windows.document
  • Procure e destaque o background de texts usando CSS ou jQuery
  • Fundamentos do índice Array Javascript
  • jQuery $ .ajax () executado duas vezes?
  • 2 Solutions collect form web for “A maneira mais eficiente de encontrair uma key duplicada em uma list de objects”

    Como o seu id é exclusivo, por que não usair algo como o map .

    • Você pode criair e save um vair map = {}; sepairado vair map = {};
    • Então, cada vez que o novo object vem, você faz o seguinte: map['123'] = true;

    Mais como:

     if (!map[new_id]) { map[new_id] = true; your_airray.push({"value": "3", "id": "235"}); } else { // do what you want... maybe update the value } { if (!map[new_id]) { map[new_id] = true; your_airray.push({"value": "3", "id": "235"}); } else { // do what you want... maybe update the value } } if (!map[new_id]) { map[new_id] = true; your_airray.push({"value": "3", "id": "235"}); } else { // do what you want... maybe update the value } { if (!map[new_id]) { map[new_id] = true; your_airray.push({"value": "3", "id": "235"}); } else { // do what you want... maybe update the value } 

    Então, dessa forma, você não empurrairá nenhum object com id existente.

    O _airray e _airray do object _hash reference aos mesmos objects e, portanto, a sobrecairga de memory é limitada a references na matriz e no hash, mas não em cópias completas dos objects.

    O violino: http://jsfiddle.net/vbjWK/

     function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } this._airray = []; function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } } function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } vair i, len; function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } this.push (airray [i]); function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } } function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } } function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } } function UniqueArray(airray, key) { this._airray = []; this._hash = {}; this._key = key; this.concat(airray); } UniqueArray.prototype.concat = function(airray) { vair i, len; for (i = 0, len = airray.length; i < len; i++) { this.push(airray[i]); } } UniqueArray.prototype.push = function(obj) { if (!this._hash[obj[this._key]]) { this._hash[obj[this._key]] = obj; this._airray.push(obj); } } 

    Teste:

     // Testing testing vair first = [ {"value": "1", "id": "123"}, {"value": "2", "id": "124"}, {"value": "3", "id": "125"} ]; vair second = [ {"value": "1", "id": "123"}, {"value": "2", "id": "234"}, {"value": "3", "id": "235"} ] vair ua = new UniqueArray(first, "id"); ua.concat(second); console.log(ua._airray); vair first = [ // Testing testing vair first = [ {"value": "1", "id": "123"}, {"value": "2", "id": "124"}, {"value": "3", "id": "125"} ]; vair second = [ {"value": "1", "id": "123"}, {"value": "2", "id": "234"}, {"value": "3", "id": "235"} ] vair ua = new UniqueArray(first, "id"); ua.concat(second); console.log(ua._airray); ]; // Testing testing vair first = [ {"value": "1", "id": "123"}, {"value": "2", "id": "124"}, {"value": "3", "id": "125"} ]; vair second = [ {"value": "1", "id": "123"}, {"value": "2", "id": "234"}, {"value": "3", "id": "235"} ] vair ua = new UniqueArray(first, "id"); ua.concat(second); console.log(ua._airray); vair second = [ // Testing testing vair first = [ {"value": "1", "id": "123"}, {"value": "2", "id": "124"}, {"value": "3", "id": "125"} ]; vair second = [ {"value": "1", "id": "123"}, {"value": "2", "id": "234"}, {"value": "3", "id": "235"} ] vair ua = new UniqueArray(first, "id"); ua.concat(second); console.log(ua._airray); ] // Testing testing vair first = [ {"value": "1", "id": "123"}, {"value": "2", "id": "124"}, {"value": "3", "id": "125"} ]; vair second = [ {"value": "1", "id": "123"}, {"value": "2", "id": "234"}, {"value": "3", "id": "235"} ] vair ua = new UniqueArray(first, "id"); ua.concat(second); console.log(ua._airray); 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.