json配列ソート、深いコピー、浅いコピー、削除、増加、フィルタリング、
json配列ソート、深いコピー、浅いコピー、削除、増加
jsonの中のある数値に基づいて並べ替えて、逆説あるいは順序
sortは元の配列を変えます.これはもう少しでバックエンドと戦うところだったからです!!!それから発見して、sortが引き起こした災いで、私がどのように穴を踏んだのかについては、書かないで、次は本当の方法で、覚えておけばいいです.
需要;
新しいユーザーを追加すると、インタフェースはデータを返し、配列の最初のユーザーに追加します.
二の先端に配列を表示し、年齢の大きさで表示する
注意:バックエンドをソートしない理由については、現在の配列の最初のデータが必要です.一般的にバックグラウンドで与えられたデータはこうです.
浅いコピーと深いコピーの違いは、元の配列を変更し、変更しないことです.
** 1.浅いコピーとは、Bオブジェクトのプロパティとメソッドを変更すると、Aオブジェクトのプロパティとメソッドに影響します.これを浅いコピー**と呼びます.
**深度コピーとは、Bオブジェクトの属性やメソッドを変更してもAオブジェクトの属性やメソッドには影響しません.これを深度コピー**と呼びます.
リッチテキストからすべての画像アドレスを取得する方法
なるほど
処理方法
プリントアウトはこんな感じ
必要なフィールドをフィルタ()
1つのjson配列の中でtypeをフィルタするのはbannerの対応する配列です
一部のフィールドを削除
jsonの中のある数値に基づいて並べ替えて、逆説あるいは順序
sortは元の配列を変えます.これはもう少しでバックエンドと戦うところだったからです!!!それから発見して、sortが引き起こした災いで、私がどのように穴を踏んだのかについては、書かないで、次は本当の方法で、覚えておけばいいです.
需要;
新しいユーザーを追加すると、インタフェースはデータを返し、配列の最初のユーザーに追加します.
二の先端に配列を表示し、年齢の大きさで表示する
注意:バックエンドをソートしない理由については、現在の配列の最初のデータが必要です.一般的にバックグラウンドで与えられたデータはこうです.
var res.info=[
{
naem:' ',ages:38},
{
naem:' ',ages:32},
{
naem:' ',ages:27}
]
//var arr = res.info; //
var arr = [...res.info]; //
arr.sort((a, b) => {
return b.bargain_price - a.bargain_price
})
console.log(res.info)
console.log(arr)
浅いコピーと深いコピーの違いは、元の配列を変更し、変更しないことです.
** 1.浅いコピーとは、Bオブジェクトのプロパティとメソッドを変更すると、Aオブジェクトのプロパティとメソッドに影響します.これを浅いコピー**と呼びます.
var arr = res.info;
// , arr ,
arr res,info
console.log(res.info) *console.log(arr)* ,
// res.info arr
// res.info arr
**深度コピーとは、Bオブジェクトの属性やメソッドを変更してもAオブジェクトの属性やメソッドには影響しません.これを深度コピー**と呼びます.
var arr = [...res.info];
console.log(res.info) *console.log(arr)*
,
リッチテキストからすべての画像アドレスを取得する方法
なるほど
// res.data.info.description
<p><p><p><img src="https://wxiong.cn/cofc.png"/></p><p><img src="https://wxixiong.cn/6aba1b.png"/></p></p></p>
処理方法
var str = res.data.info.description;
var imUrl = str.match(/src="([^"]*)/g).map(s => s.substring(5));
console.log(imgUrl)
プリントアウトはこんな感じ
["https://wxiong.cn/cofc.png", "https://wxixiong.cn/6aba1b.png"]
必要なフィールドをフィルタ()
1つのjson配列の中でtypeをフィルタするのはbannerの対応する配列です
let dataInfo = res.data.info.all_data;
let banner = dataInfo.filter((e) => {
if(e.type == 'banner'){
return e }
})
that.setData({
banner:banner[0].list,
advert:advert
})
一部のフィールドを削除
let dataInfo = res.data.info.all_data;
let banner = dataInfo.filter((e) => {
if(e.type != 'banner'){
return e }
})
// type:banner
that.setData({
banner:banner[0].list,
advert:advert
})