Сравнить два массива каждого элемента и вернуться на основе условия? - PullRequest
1 голос
/ 22 марта 2020

Ниже приведены фрагменты кода для двух массивов, содержащих элементы. Здесь я хочу сначала выполнить итерацию positionItems , взять первый элемент и сравнить этот элемент со вторым массивом. И здесь, если метка равна distributionAssigningLabel, тогда она вернет true, иначе false.

В этом сценарии она вернет 'Shashi', потому что в первом месте массива там, так что она займет эту позицию и будет соответствовать со вторым массивом, второй массив также содержит имя позиции Senior, поэтому после этого он проверит метку с помощью distributionAssigningLabel, поэтому он будет соответствовать и вернет true.

Не могли бы вы взглянуть и сказать мне лучшее оптимизированный способ добиться этого? Спасибо.

var positionItems = [
      "Director",
      "Vice President",
      "Senior Vice President",
      "Executive Vice President",
      "President","Senior"
    ];
    
 var refundBasedOnPosition = [
      {
        positionName: "Executive Vice President",
        positionCode: "Header",
        label: "Alyson"
      },
      {
        positionName: "Senior Vice President",
        positionCode: "Header",
        label: "Tyson"
      },
      { positionName: "Director", positionCode: "Header", label: "Shashi" },
      {
        positionName: "Vice President",
        positionCode: "Header",
        label: "Shashi"
      },
      { positionName: "President", positionCode: "Header", label: "Shashi" },
      {
        positionName: "Senior",
        positionCode: "Header",
        label: "Shashi N"
      },
      {
        positionName: "Senior",
        positionCode: "Header",
        label: "Shashi"
      },
      {
        positionName: "Vice President",
        positionCode: "Header",
        label: "Shashi B"
      },
    ];
    
    const distributionAssigningLabel = "Shashi";

Я пытался использовать следующий способ, но он будет сравниваться не совсем. Я хочу

let isLogginedName = false;

let filterRefundBasedOnPosition = refundBasedOnPosition.map((item, index) => {
  if (item.positionName === positionItems[index]) {
    if (distributionAssigningPersonFullName === item.label) {
      isLogginedName = true;
    }
  }
  return item;
});
console.log(isLogginedName);

Но не сравнивать с упомянутыми условиями.

1 Ответ

0 голосов
/ 22 марта 2020

Во-первых, в вашем коде, во втором, если условие - "distributionAssigningLabel", имя переменной неверно и возвращает "true" для "Shashi", когда вы исправляете его, не из-за старшей позиции, а из-за " Президентская позиция, которая находится на Index - 4 во время матча в вашей логике c.

Я предполагаю, что вы хотите проверить, существует ли позиция и, если она существует, выполнить сопоставление метки с вашим постоянным значением?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...