js 질문 채택완료
니냐노
3년 전
조회 1,862
a = [{id: 0, name: "철수", status: good},{id: 1, name: "영희", status:nice},{id: 2, name: "짱구", status: good},{id: 0, name: "훈이 status: bad}]
b = [{name:"철수", alpha: ''a" },{name:"영희", alpha: ''b" },{name:"짱구", alpha: ''c" }]
가 잇다고 하면
제가 가지고 싶은건 이름이 같은것중에 b에서 alpha라는것만 뽑고 싶습니다
</p>
<p>a.map(x=>{</p>
<p>b.map(y=>{</p>
<p>if(x.name == y.name){</p>
<p>return b.alpha</p>
<p>}</p>
<p>) })
가 제생각인데 안되더ㅏ구요;;
filter로든 include등 해봣는데 도무지 안되서 질문 드립니다 ㅠ
결과값 [a,b,c]
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
3년 전
</p>
<p><script>
const a = [
{id: 0, name: "철수", status: "good"},
{id: 1, name: "영희", status: "nice"},
{id: 2, name: "짱구", status: "good"},
{id: 0, name: "훈이", status: "bad"}
];</p>
<p>const b = [
{name:"철수", alpha: "a" },
{name:"영희", alpha: "b" },
{name:"짱구", alpha: "c" }
,{name:"x구", alpha: "xc" }
,{name:"xx구", alpha: "xxc" }
];</p>
<p>const c = b.map((row_b) => {
const matched = a.some(row_a => row_a.name == row_b.name);
if (matched == true) {
return row_b.alpha;
}
return null;
}).filter(v => v != null);</p>
<p>console.log(c);</p>
<p></script></p>
<p>
글쎄요. 결과가 나오긴 하는데
라인이 짧고 함축적이라고 다 좋은건 아니어서
이런 축약식 코드는 별로 추천드리지는 않습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
니냐노
3년 전
감사합니다 함수로 넣는것도 생각해 봐야겟군요
댓글을 작성하려면 로그인이 필요합니다.
3년 전
</p>
<p>let itemA = [</p>
<p> { id: 0, name: "훈이", status: "bad" },</p>
<p> { id: 0, name: "철수", status: "good" },</p>
<p> { id: 1, name: "영희", status: "nice" },</p>
<p> { id: 2, name: "짱구", status: "good" },</p>
<p> ];</p>
<p> let itemB = [</p>
<p> { name: "철수", alpha: "a" },</p>
<p> { name: "영희", alpha: "b" },</p>
<p> { name: "짱구", alpha: "c" },</p>
<p> ];</p>
<p> </p>
<p> let result = itemB.filter((B) => {</p>
<p> return itemA.some((A) => A.name === B.name);</p>
<p> });</p>
<p> </p>
<p> console.log(result);</p>
<p>
// B 기준으로 돌려서 A에 포함된것들만 리턴 하면 나오긴하는데....
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
니냐노
3년 전
감사합니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인