Цикл по объектам в JavaScript - PullRequest
0 голосов
/ 19 июня 2019

Я знаю, что это то, что я должен знать, но мне трудно понять это.

const food = {
  "design": [
    {
      "forTemperature": {
        "high": "100",
        "low": "70"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "80",
        "low": "65"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "75",
        "low": "65"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "67",
        "low": "60"
      },
      "productURL": "",
      "imageURL": ""
    }
  ]
}

Базовый файл json, который у меня есть, объекты внутри массива, но что-то вроде:

food.design.map((item, i) => i

не работает для меня.

Какой подход делатьМне нужно идти?


import food from "./apiDesign.json";


const New = props => {

  const [food, setFood] = useState([]);

  useEffect(() => {

    const fetchAPI = async e => {
      const designer = await food;
      setFood(designer);
    };

    fetchAPI();

  }, [])

  const stuff = () => {
    return loop // I was trying to loop it in here
  };

  return (
    {stuff}
  )
}

export default New;

Ответы [ 3 ]

0 голосов
/ 19 июня 2019

Метод ниже вернет каждый объект, который находится внутри food.design :

food.design.map(item => { /* do something here */ });
0 голосов
/ 19 июня 2019

Если вы используете ECMA Script 6, используйте этот

const food = {
  "design": [
    {
      "forTemperature": {
        "high": "100",
        "low": "70"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "80",
        "low": "65"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "75",
        "low": "65"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "67",
        "low": "60"
      },
      "productURL": "",
      "imageURL": ""
    }
  ]
}
const obj =  food.design;
for (const key of Object.keys(obj)) {
    console.log(key, obj[key]);
}
0 голосов
/ 19 июня 2019

Это прекрасно работает для меня, так как вы можете видеть, как он проходит через массив правильно.В чем ваша проблема?

const food = {
  "design": [
    {
      "forTemperature": {
        "high": "100",
        "low": "70"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "80",
        "low": "65"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "75",
        "low": "65"
      },
      "productURL": "",
      "imageURL": ""
    },
    {
      "forTemperature": {
        "high": "67",
        "low": "60"
      },
      "productURL": "",
      "imageURL": ""
    }
  ]
}

food.design.map((item, i) => console.log(i, item))
...