Как перебрать l oop внутри массива для получения значений из другого массива в машинописи - PullRequest
0 голосов
/ 02 апреля 2020

В файле ts я создал следующий массив: -

myimages: any=[
    {img_path:"assets/img/image1.jpg"},
    {img_path:"assets/img/image2.jpg"},
    {img_path:"assets/img/image3.jpg"},
    {img_path:"assets/img/image4.jpg"},
    {img_path:"assets/img/image5.jpg"},
    {img_path:"assets/img/image6.jpg"},
    {img_path:"assets/img/image7.jpg"},
    {img_path:"assets/img/image8.jpg"},
    {img_path:"assets/img/image9.jpg"},
    {img_path:"assets/img/image10.jpg"}
];


galleryImages = [

    for (let i = 0; i < myimages.length; i++) {    
        small: 'myimages[i]',
        medium: 'myimages[i]',
        big: 'myimages[i]'
    }

];

Мне нужны пути к изображениям из массива myimages в маленькие, средние и большие значения в массиве galleryImages. Я пробовал приведенный выше код, но для l oop выдает ошибку ts1137. Пожалуйста, кто-нибудь, помогите мне как можно раньше. Это может быть небольшая проблема, но я новичок в angular, поэтому я не получаю правильное решение для этого. Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 02 апреля 2020

Вы можете сделать это проще

myimages: any=[
    {img_path:"assets/img/image1.jpg"},
    {img_path:"assets/img/image2.jpg"},
    {img_path:"assets/img/image3.jpg"},
    {img_path:"assets/img/image4.jpg"},
    {img_path:"assets/img/image5.jpg"},
    {img_path:"assets/img/image6.jpg"},
    {img_path:"assets/img/image7.jpg"},
    {img_path:"assets/img/image8.jpg"},
    {img_path:"assets/img/image9.jpg"},
    {img_path:"assets/img/image10.jpg"}
];

const galleryImages: any = myimages.map((img: any) => ({
  small: img,
  medium: img,
  big: img
}));
0 голосов
/ 03 апреля 2020

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

interface Image {
   img_path: string;
};

const myimages: Image[] = [
  { img_path: "assets/img/image1.jpg" },
  { img_path: "assets/img/image2.jpg" },
  { img_path: "assets/img/image3.jpg" },
  { img_path: "assets/img/image4.jpg" },
  { img_path: "assets/img/image5.jpg" },
  { img_path: "assets/img/image6.jpg" },
  { img_path: "assets/img/image7.jpg" },
  { img_path: "assets/img/image8.jpg" },
  { img_path: "assets/img/image9.jpg" },
  { img_path: "assets/img/image10.jpg" }
];

const galleryImages = myimages.map(image => {
  return {
    small: image.img_path,
    medium: image.img_path,
    big: image.img_path
  };
});

0 голосов
/ 02 апреля 2020

Вам нужно использовать функцию map вместо for l oop.

Если вы не объявили свои переменные с const, let или var, тебе тоже нужно это сделать.

var myimages: any = [
  { img_path: "assets/img/image1.jpg" },
  { img_path: "assets/img/image2.jpg" },
  { img_path: "assets/img/image3.jpg" },
  { img_path: "assets/img/image4.jpg" },
  { img_path: "assets/img/image5.jpg" },
  { img_path: "assets/img/image6.jpg" },
  { img_path: "assets/img/image7.jpg" },
  { img_path: "assets/img/image8.jpg" },
  { img_path: "assets/img/image9.jpg" },
  { img_path: "assets/img/image10.jpg" }
];


var galleryImages: any = myimages.map((x: any) => ({
  small: x,
  medium: x,
  big: x
}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...