前提・実現したいこと
Vue.js初心者で、公式サイトのガイド[https://jp.vuejs.org/v2/guide/]を見て勉強しています。
以下の条件でテーブルに情報を追加するコードを書こうとしたのですが、
書き方が分からず、苦戦しています。
- 既に同じ名前の果物がテーブルにある場合は、テーブルに追加できない。
番号 | 果物
1 | りんご
2 | ぶどう
3 | すいか
[ 番号入力フォーム ][ 果物入力フォーム ]「追加ボタン」
上記の果物入力フォームに「りんご」を入力しても、テーブルには追加されないようにしたいです。
作成中のソースコード
Vue.js
1<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 2 <title>test</title> 3 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 4 5 6 <div id="app"> 7 <input v-model="inputId"> 8 <input v-model="inputName"> 9 <button v-on:click="addTable">Add Table</button> 10 <ul v-for="fruit in fruits"> 11 <td> {{ fruit.id }} </td> 12 <td> {{ fruit.name }} </td> 13 </ul> 14 </div> 15 16 <script> 17 var app = new Vue({ 18 el: '#app', 19 data: { 20 fruits: [ 21 { id:'ID', name:'Name' }, 22 { id:'1', name:'りんご' }, 23 { id:'2', name:'ぶどう' }, 24 { id:'3', name:'すいか' } 25 ] 26 }, 27 methods: { 28 addTable: function () { 29 var flag = true 30 for (let index = 0; index < fruits.length; index++) { 31 if (this.fruits.name[index] == inputName) { 32 flag = false 33 } 34 } 35 if (flag == true){ 36 this.fruits.push({ id:this.inputId, name:this.inputName }) 37 } 38 } 39 } 40 }) 41 42 </script>
試したこと
- 他の言語のように、For文を組んでみましたが、うまくいきませんでした。
【解決】うまくいったコード
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>test</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <div id="app"> <input v-model="inputId"> <input v-model="inputName"> <button v-on:click="addTable">Add Table</button> <ul v-for="fruit in fruits"> <td> {{ fruit.id }} </td> <td> {{ fruit.name }} </td> </ul> </div> <script> var app = new Vue({ el: '#app', data: { fruits: [ { id:'ID', name:'Name' }, { id:'1', name:'りんご' }, { id:'2', name:'ぶどう' }, { id:'3', name:'すいか' } ] }, methods: { addTable: function () { var flag = true for (let index = 1; index < this.fruits.length; index++) { if (this.fruits[index].name == this.inputName) { flag = false } } if (flag == true){ this.fruits.push({ id:this.inputId, name:this.inputName }) } } } }) </script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/12 15:48 編集
2020/10/12 21:46