タイトルが分かりづらくて大変恐縮なのですが、
やりたいことは下記の連想配列内の"task"に当たる部分の要素"tname"の値が"coding"の
配列を持っているオブジェクトの"name"であるJohnの値を返したいと思っています。
TypeScript
1const test = [ 2 {id:1,name:"John",task:[{tid:2,tname:"coding"},{tid:3,tname:"test"}]}, 3 {id:4,name:"Bob",task:[{tid:5,tname:"hoge"},{tid:6,tname:"fuga"}]}, 4]
自分なりにfilterを使ったりforEachを使ったりして
コードを書いてみたのですが、エラーとなり期待した値を取得することができない状況です。
私が作成したコードは下記です。
TypeScript
1let fileteredTest = test.filter((item:any)=>{ 2 let itemSelect = item.task.forEach((e:any)=>{ 3 if(e.tname.includes("coding")){ 4 e.splice(0,0,{ 5 tid:e.tid, 6 tname:e.tname, 7 }) 8 } 9 }) 10 return item.task[0] === itemSelect 11}) 12 13console.log(fileteredTest)
output
1TypeError: e.splice is not a function
TypeScriptを使っているのは、TypeScript Playgroundで動作確認をしているためです。
期待しているアウトプットとしては、コンソール上に
output
1John
と表示させたいと思っています。
なかなかいい方法を見つけることができず非常に困っております。
どなたか詳しい方、ご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー