一个JavaScript面试题,求大佬解答。

新手上路,请多包涵

image

本人很菜,感觉大佬们的解答。

阅读 2.3k
3 个回答

笨比方法

var arr = [
    {product:'pd1',price: 100,profit:50,quantity: 10},
    {product:'pd2',price: 110,profit:10,quantity: 1000},
    {product:'pd3',price: 120,profit:30,quantity: 10},
    {product:'pd4',price: 110,profit:20,quantity: 10},
    {product:'pd5',price: 120,profit:70,quantity: 10},
    {product:'pd6',price: 130,profit:90,quantity: 10},
]

var foo = (arr) => {
    var sortArr = arr.sort((a,b)=>b.profit*b.quantity - a.profit*a.quantity)
    var result = {
        product: [],
        price: [],
        profit: [],
        quantity: [],
    }
    sortArr.forEach(item=>{
        result.product.push(item.product)
        result.price.push(item.price)
        result.profit.push(item.profit)
        result.quantity.push(item.quantity)
    })
    return result
}
var result = foo(arr)
console.log(result)

image.png

const skus = ['profit', 'product', 'price', 'quantity'];
const convert = arr => arr.sort(a.profit*a.quantity - b.profit*b.quantity).
    reduce((pre, cur) => (skus.forEach(sku => pre[sku].push(cur[sku])), pre), 
    skus.reduce((pre, cur) => ((pre[cur] = []), pre), {}));

应该能秀死面试官。

哈哈哈 在线等的那种么 ≡ω≡

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题