너무궁금해서 글씁니다 리액트네이티브 fetch api 로 data들고올때

안녕하세요 리액트네이티브 왕초보입다ㅜㅠ
다름이 아니라 fetch api로 데이터를 받앗는데 json array 형식으로 오잖아요
근데 제가 원하는 data가 잇는데
예를들어서 name:상품명2 뽑아서 꾸며주고 싶은데 이 객체만 가져오는 방법이 잇을까요?
도무지 어떻게 해야할지 감이 안잡힙니다ㅜㅠ 도와주십시오ㅠㅠ

현재 flatlist로 화면상으로만 뿌려주기 햇습니다 
[
  {
    "productNo": 1,
    "name": "상품명1",
    "price": 100
  },
  {
    "productNo": 2,
    "name": "상품명2",
    "price": 200
  }
]
1개의 좋아요

열심히 for문 돌려서 #name만 추출하는 것도 방법일 수 있습니다.

const data = [
  {
    "productNo": 1,
    "name": "상품명1",
    "price": 100
  },
  {
    "productNo": 2,
    "name": "상품명2",
    "price": 200
  }
]

const dataSize = data.length();
const formattedData = new Array(dataSize);
for (let i = 0; i < dataSize; i++) {
  formattedData[i] = data[i].name;
  // 또는
  // formattedData[i] = data[i]["name"];
}

이게 제일 접근성이 쉬운 방법이지만, for문이라는 친구가 비중 있게 보이니 가독성이 떨어질 수 있습니다.

그럴 땐 Array.prototype.map을 알아보시면 좋겠습니다.

그럼 동일한 코드를 Array.prototype.map으로 바꾸면

const data = [
  {
    "productNo": 1,
    "name": "상품명1",
    "price": 100
  },
  {
    "productNo": 2,
    "name": "상품명2",
    "price": 200
  }
]

const formattedData = data.map(d => d.name);
// 또는
// const formattedData = data.map(d => d["name"]);

이렇게 될 겁니다.

이밖에 Array.prototype.filter이나, Array.prototype.foreach, Array.prototype.reduce 같은 메소드도 알아보시면 꽤 유용하게 쓰리라 생각됩니다.

1개의 좋아요

와 감사합니다 구글링도 해보고 예시를 봣는데도 이 코드를 어떻게 써야하나 이해가 안됫는데 조금은 알것같습니다 자바스크립트를 잘 모르니 이게 쉽지가 않네요 해보겟습니다 감사합니당ㅠㅠㅠ

Array.prototype.filter 를 쓰면 될 거 같습니다.

theArray.filter(obj => obj.name === “상품명2”)