对于循环中的每个项目,您将如何迭代并返回不同数组中的项目?

问题描述

我有一个像这样的对象数组:

arrOfObjs =
[{type: "flower",egg: "something"},{type: "flower",egg: "something2"},{type: "notFlower",egg: "something3"},egg: "something4"}]

数组中的每个对象都有一个“类型”。每当用户点击页面上的一个项目时,就会将另一个对象添加到数组中,类型为“flower”或“notFlower”

我有一个这样的数组:

allProperties = 
["flower_style_1","flower_style_2","flower_style_3","flower_style_4","flower_style_5","flower_style_6","flower_style_7","flower_style_8"]

正如你所知道的,它本质上是flower_style_,然后是一个最多为 8 的数字。

对于 arrOfObjs 中 type = 花的每个项目,以及添加的任何新项目,都应该有一个 return 语句,其中返回的主题是 allProperties 数组中的内容

例如,在上面的 arrOfObjs 中:

  1. 对于 {type: "flower",egg: "something"} => 返回 "flower_style_1"。
  2. 对于 {type: "flower",egg: "something2"} => 返回 "flower_style_2"。
  3. 不要为{type: "notFlower",egg: "something3"}返回任何内容
    因为它不是“类型”:花。
  4. 对于 {type: "flower",egg: "something4"} => 返回 "flower_style_3"。

一旦返回 allProperties 中的所有项目,然后从开始的 flower_style_1 开始,并为 arrOfObjs 中的每个新项目返回该元素。

到目前为止,我已经编写了以下内容,这是一个通过 arrOfObjs 的 foreach 循环。

    this.arrOfObjs?.forEach(arrItem => {
        if (arrItem.type === 'flower') {
            this.allProperties.forEach(element => {
                return element;
            }
        }
    });

但是它不起作用,我认为会有更有效的方法来实现这一目标。尤其是没有一个flower_style_数组.......

有人知道如何实现上述目标吗?

解决方法

      arrOfObjs =
[{type: "flower",egg: "something"},{type: "flower",egg: "something2"},{type: "notFlower",egg: "something3"},egg: "something4"}]

allProperties = 
["flower_style_1","flower_style_2","flower_style_3","flower_style_4","flower_style_5","flower_style_6","flower_style_7","flower_style_8"];


let getArray=[]; 
arrOfObjs?.forEach((arrItem,i) => {
        if (arrItem.type === 'flower') {
            getArray.push(allProperties[getArray.length]);
        }
    });  
    console.log(getArray);