Angular 10: как сравнить два массива - PullRequest
0 голосов
/ 10 июля 2020

У меня есть два массива: один с цветами, а другой с категориями.

"colors": [
        {
          "buttonId": "color-cinder-spark-red",
          "filmCategory": 1,
          "name": "cinder spark red",
          "previewImg": "assets/filmPreviewImg/gloss-cinder-spark-red.png",
          "default": true
        },
        {
          "buttonId": "color-gloss-red-metallic",
          "filmCategory": 2,
          "name": "red metallic",
          "previewImg": "assets/filmPreviewImg/gloss-red-metallic.png"
        },
        {
          "buttonId": "color-dragon-red",
          "filmCategory": 3,
          "name": "dragon red",
          "previewImg": "assets/filmPreviewImg/gloss-dragon-red.png"
        },...

Массив очень большой.

Вот категории:

"types": [
        {
          "id": 1,
          "name": "Gloss",
          "type": "gloss"
        },
        {
          "id": 2,
          "name": "Matte",
          "type": "matte",
          "default": true
        },
        {
          "id": 3,
          "name": "Satin",
          "type": "satin"
        },...

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

  filmTypes = filmTypes.types;
  filmColors = filmColors.colors;

  currentColor: any;
 
  modalRef: BsModalRef;
  constructor(private modalService: BsModalService,
              private _productService: ProductService) {}

  ngOnInit(): void {
    const defaultColor = this.filmColors.find((c) => c.default);
    this.selectColor(defaultColor);  
       
    this._productService.currentFilmColor$.subscribe((color: any) => {      
      this.currentColor = color.filmCategory;          
      console.log('color2',this.currentColor);            
    });    
  }

Как мне сравнить этот идентификатор в другом массиве и получить имя категории?

1 Ответ

1 голос
/ 10 июля 2020

Используйте Array#find.

const { name } = filmTypes.find(({ id }) => id === this.currentColor);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...