Проверьте множественные значения в массиве и добавьте третье значение в html - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу проверить, существуют ли множественные значения в массиве, и если они есть, добавьте значение третьего - скрипт ниже явно не работает, но может дать хорошее представление о том, что я хочу сделать. Я хочу добавить это только один раз, даже если массив проверяется несколько раз.

Какой лучший способ сделать это?

var names = {
  list: [{
      "model": "round",
      "type": "Special",
      "typedescription": "appendedvalue"
    }, {
      "model": "round",
      "type": "Special",
      "typedescription": "appendedvalue",
    }
    "model": "round",
    "type": "Special",
    "typedescription": "appendedvalue"
  },
  {
    "model": "square",
    "type": "Special",
    "typedescription": "appendedvalue"
  }]

};

if ($.inArray('model.round', 'type.special'
    names) !== -1) {
  $('.test').append('<p>' + typedescription.appendedvalue + '</p>');
}
<div class="test"></div>

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Вы можете использовать .find, чтобы попытаться найти подходящий объект. Поместите тест (от того, есть ли у объекта нужные model и type) в обратном вызове. Если он существует, добавьте свойство:

var names = {
  list: [{
      "model": "round",
      "type": "Special",
      "typedescription": "appendedvalue"
    }, {
      "model": "round",
      "type": "Special",
      "typedescription": "appendedvalue",
    }, {
    "model": "round",
    "type": "Special",
    "typedescription": "appendedvalue"
  },
  {
    "model": "square",
    "type": "Special",
    "typedescription": "appendedvalue"
  }]

};

const item = names.list.find(({ model, type }) => model === 'round' && type === 'Special');
if (item) {
  $('.test').append('<p>' + item.typedescription + '</p>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="test"></div>
0 голосов
/ 20 февраля 2020
var names = {
  list: [
    {
      "model": "round",
      "type": "Special",
      "typeDescription": "appendedvalue"
    },
    {
      "model": "round",
      "type": "Special",             
      "typeDescription": "appendedvalue",
    },
    {
      "model": "round",
      "type": "Special",
      "typeDescription": "appendedvalue"
    },
    {
      "model": "square",
      "type": "Special",
      "typeDescription": "appendedvalue"
    }
  ]
};

let name = names
  .list
  .find(n => n.model === "round" && n.type === "Special");

if(name) {
  $('.test').append(`<p>${name.typeDescription}</p>`);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...