in Vue3 composition API, I have 2 arrays
const fruitsSellerPrice = [
{id: 1, name: apple, priceSeller: '10.90'},
{id: 2, name: banana, priceSeller: '11.20'},
{id: 3, name: orange, priceSeller: '12.30'},
{id: 4, name: framboesa, priceSeller: '13.90'}}];
const fruitsBuyPrice = [
{id: 1, name: apple, priceBuy: '6.90'},
{id: 2, name: banana, priceBuy: '6.20'},
{id: 3, name: orange, priceBuy '7.30'},
{id: 4, name: framboesa, priceBuy: '16.90'}}];
我想知道如何做一個“智能”過濾器,通過“名稱”回傳差異并訂購高到低或低到高,priceSell - PriceBuy ...
我有一個功能非常大的線條..出了點問題....
uj5u.com熱心網友回復:
嘗試以下代碼段:
const fruitsSellerPrice = [{id: 1, name: 'apple', priceSeller: '10.90'},{id: 2, name: 'banana', priceSeller: '11.20'},{id: 3, name: 'orange', priceSeller: '12.30'},{id: 4, name: 'framboesa', priceSeller: '13.90'}]
const fruitsBuyPrice = [{id: 1, name: 'apple', priceBuy: '6.90'},{id: 2, name: 'banana', priceBuy: '6.20'},{id: 3, name: 'orange', priceBuy: '7.30'},{id: 4, name: 'framboesa', priceBuy: '16.90'}]
let sortOrder = true
const res = fruitsSellerPrice.map(f => {
return {...f, diff: Math.abs((Number(f.priceSeller) - Number(fruitsBuyPrice.find(u => u.id === f.id).priceBuy))).toFixed(2)}
}).sort((a, b) => {
return sortOrder ? a.diff - b.diff : b.diff - a.diff
})
console.log(res)
uj5u.com熱心網友回復:
// find all seller items, and check what the value is in the buy array is and respond with the difference.
const response = fruitsSellerPrice.map( item =>
({ ...item,
diff:
Math.abs(
Number(
fruitsBuyPrice.find(
buy=>buy.name === item.name).priceBuy)
- Number(item.priceSeller).toFixed(2))
})
).sort((a,b)=>b.diff-a.diff)
// for asc, do a.diff - b.diff
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/441664.html
