过滤数组,然后在数组中映射数组

时间:2018-10-13 07:02:47

标签: javascript

可以肯定的是我缺少一些简单的东西,但是这段代码让我大吃一惊。

我在本地dat = data.frame(a=c("Jan","Apr","Oct") monthlist = rep(c("Q1",'Q2','Q3','Q4'),each = 3) names(monthlist) = month.abb dat$quarters = monthlist[dat$a] 文件中有一个array,是

json

并导入为React组件

{
  "type": [
    {
      "name": "Accommodation",
      "icon": "",
      "subcategory": [
        "Hotels",
        "Motels",
        "Bed & Breakfasts"
      ]
    },
    {
      "name": "Guided Tours",
      "icon": "",
      "subcategory": [
        "Audio & Self Guided",
        "Cruises, Sailing & Water",
        "Food, Wine & Nightlife"
      ]
    }
  ]
}

然后我在import { type } from './assets/json/company-type.json'; 的{​​{1}}中使用filter(基于namecompanyType的{​​{1}}值。在我将返回的项目映射到selectAccommodation

之前
Guided Tours

但是,什么也没有返回。但是,如果我map subcategory,我将在控制台中将每个返回。我想念什么?

1 个答案:

答案 0 :(得分:1)

这是因为您没有从.map()方法返回。 使用此修改后的代码,它将按预期工作

<ul>
    {type
      .filter(item => {
        return item.name === "Accommodation";
      })
      .map(item => {
        return item.subcategory.map(subcategory => {
          return (
            <li key={subcategory}>
              <label id={subcategory} htmlFor={subcategory}>
                <input
                  type="radio"
                  name={subcategory}
                  value={subcategory}
                />
                <span />
                {subcategory}
              </label>
            </li>
          );
        });
      })}
 </ul>

codeSandbox链接:https://codesandbox.io/s/4881483j7x