Как сделать два разных массива результатов в angular6 - PullRequest
0 голосов
/ 24 ноября 2018

Вот ответ службы продукта.

productServiceResponse = [
  {productOrderId:108898,productStatus:"C",productId:'4'},
  {productOrderId:108899,productStatus:"P",productId:'2'},
];

с использованием значения константы currentProductStatus = "C";

В ответе службы продукта мне нужно найти текущий продукт и взятьproduct, используя указанное выше постоянное значение и взяв идентификатор продукта.

Итак, я сделал это. Здесь я сделал индекс текущего продукта вместо того, чтобы узнать его из динамической информации из коллекции.

this.productServiceResponse[0].productStatus

// проверить текущий продукт

  const ProductCode =
            this.productServiceResponse[0].productStatus ===
            this.currentProductStatus
              ? this.productServiceResponse[0].productId.toString()
              : null;

после получения текущего идентификатора продукта.

Я должен проверить его в другой коллекции.

      productTypes =[
    {id: "1", name: "Laptop"},
    {id: "2", name: "Mobile"},
    {id: "3", name: "headphone"},
    {id: "4", name: "Cameras"}
      ];

из коллекции типов продуктов я соответствую идентификатору продукта из приведенного выше результата.

   this.currentProduct = this.productTypes.find(product=>product.id ===ProductCode).name;

final o / p становится камерами.

Я получил o / p: но мне нужноэтот запрос в одной строке вместо двух переменных.

может любой рефакторинг этого.

Демо: filter

1 Ответ

0 голосов
/ 24 ноября 2018

Попробуйте вот так

this.productTypes.find(product=>
    product.id === productServiceResponse.find(psr=>psr.productStatus === this.currentProductStatus).productID
    ).name 

Имейте в виду, что я набрал это на своем мобильном телефоне ? check this

...