ミニ プログラムがパブリック ベータ版で開始された後、すでに多くの友人がミニ プログラムへの登録を急いで申請していると思います。開発段階では、wx.request データ リクエストが失敗した、配列操作中にデータを配列にプッシュする方法がわからなかった、入力がユーザー入力のステータスを監視する方法がわからなかった、バックグラウンドなど、多くの問題にも遭遇しました。 -CSS の画像がローカル リソースを取得できなかったなど、このブログでは、これらの問題に遭遇した友人に解決策を提供する特別なトピックを用意します。
今日は主に配列演算について話します。
vuejs、reactjs、その他の mvvmframeworks を使用したことがある子供たちにとって、WeChat アプレットの配列操作は非常に簡単で、原理は同じであると思います。
これは、githubにアップロードされている簡単なデモで、直接ダウンロードできます。ここでは主に、配列への新しいデータの前後方向の挿入、配列の変更、配列の削除、配列のクリア、その他の演算など、配列でよく使用される操作方法について説明します。 デモ配列操作のパスの例:
/pages/<a href="//m.sbmmt.com/wiki/1041.html" target="_blank">array<p>/array.wxml<br></p></a>
/pages/<a href="//m.sbmmt.com/wiki/1041.html" target="_blank">array</a>/array.w<a href="//m.sbmmt.com/wiki/1527.html" target="_blank">xml</a>
Page({ data: { list:[{ id:1, name:'应季鲜果', count:1 },{ id:2, name:'精致糕点', count:6 },{ id:3, name:'全球美食烘培原料', count:12 },{ id:4, name:'无辣不欢生猛海鲜', count:5 }] } })
我们初始化一些数据,我们需要对list的添加新的数据里,需要用到<a href="//m.sbmmt.com/wiki/48.html" target="_blank">JavaScript</a> concat()
的方法,concat()
方法用于连接两个或多个数组,该方法不会改变现有的数组。
其实我们的所说的向前向后插入数据,其实也就是把两个数组合拼起来,组成一个新的数组,然后再使用this.<a href="//m.sbmmt.com/code/8209.html" target="_blank">set</a>Data()
即可渲染到页面上。
我们看一下在微信小程序里的代码。
向前插入数据demo
//向前增加数据 add_before:function (){ //要增加的数组 var newarray = [{ id:6, name:'向前增加数据--'+new Date().getTime() , count:89 }]; //使用concat()来把两个数组合拼起来 this.data.list = newarray.concat(this.data.list); //将合拼之后的数据,发送到视图层,即渲染页面 //大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。 this.setData({ 'list': this.data.list }); }
向后插入数据demo
//向后增加数据 add_after:function (){ //要增加的数组 var newarray = [{ id:5, name:'向后增加数据--'+new Date().getTime() , count:89 }]; this.setData({ 'list':this.data.list.concat(newarray) }); },
细心的小伙伴应该会发现,这两段在用concat()
合拼数据时,concat括号里的数据是不一样的。向前向后插入数据的区别就在这里了。
//假设这一段是我们要新增的数组 var newarray = [{ id:5, name:'向后增加数据--'+new Date().getTime() , count:89 }]; //向前--用newarray与this.data.list合拼 this.data.list = newarray.concat(this.data.list); //向后--用this.data.list与newarray合拼 this.data.list = this.data.list.concat(newarray);
对展示的数据进行修改,在开发过程是常见得不在常见的事情啦。
//修改数组 edit:function (e){ //这个参数“e”的具体作用,请参考微信小程序官方提供的说明,地址为https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html?t=20161107 var dataset = e.target.dataset; var Index = dataset.index; //在通过在wxml页面里使用 data-index="{{index}}"传递过来的,是为识别正在编辑修改哪个数组。 //我们要修改的数组 this.data.list[Index].name = '修改了内容'+new Date().getTime(); //将合拼之后的数据,发送到视图层,即渲染页面 //大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。 this.setData({ list:this.data.list }); }
有增有改也必有删。
删除需要用到JavaScript splice()
方式,splice()
//删除 remove:function (e){ var dataset = e.target.dataset; var Index = dataset.index; //通过`index`识别要删除第几条数据,第二个数据为要删除的项目数量,通常为1 this.data.list.splice(Index,1); //渲染数据 this.setData({ list:this.data.list }); }
<p>JavaScript</p> concat()
メソッドを使用する必要があります。 concat()
メソッドは、2 つ以上の配列を接続するために使用されます。 、このメソッドは既存の配列を変更しません。 this.<a href="//m.sbmmt.com/code/8209.html" target="_blank">set<p>Data()</p></a>
を使用すると、ページにレンダリングされます。 WeChat アプレットのコードを見てみましょう。 データ前方挿入のデモ
//清空 clear:function (){ //其实就是让数组变成一个空数组即可 this.setData({ list:{} }); }
JavaScript splice()
メソッドが必要です。 splice()
メソッドは配列に項目を追加または削除し、削除された項目を返します。 🎜rrreee🎜データをクリア🎜🎜 追加、変更、削除した後は、再度データをクリアする必要があります。 🎜rrreee🎜まとめ🎜🎜今日は主に、配列の追加、変更、削除、消去について説明しました。以下のスクリーンショットをご覧ください。 🎜🎜🎜🎜🎜🎜🎜🎜以上がWeChat アプレットは配列演算を学習しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。