前提・実現したいこと
Vue.jsのcomputed内で、オブジェクトを基にして別の配列を使用し、新しいオブジェクトを生成したいと考えています。
すべてのスキル(allSkills)からユーザーの登録したスキル(userSkills)を除いた(unselectedSkills)を生成したいのですが、いろいろ調べて下記のようにやってみたのですが、元のオブジェクトと変わらなかったり、うまくいきません。
filterメソッドを使うとよさそうというとことまでは気付いたのですが、公式リファレンス等にも引数に配列を渡すやり方は載っておらず、先に進まない状態です。。。
ご教授の程よろしくお願いいたします。
該当のソースコード
javascript
1const allSkills = [ { "id": 1, "name": "スキルA" }, { "id": 2, "name": "スキルB" }, { "id": 3, "name": "スキルC" } ] 2const userSkills = [ { "id": 2, "name": "スキルB" }, { "id": 5, "name": "スキルE" }, { "id": 7, "name": "スキルG" } ] 3 4const userIDs = userSkills.map(obj => obj.id) 5// [ 2, 5, 7, 8, 10 ] 6 7const unselectedSkills = allSkills.filter(function(obj) { 8 for ( id of this ) { 9 if (obj.id != id ) return true 10 } 11 }, userIDs) 12 13
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。