javascript中的比较和筛选对象数组

javascript中的比较和筛选对象数组,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,如何确定最便宜和最快的速率,并在单个对象中获得值 最便宜的是通过使用网络费具有最小值 最快的是通过使用速度拥有更少的天数 最佳通过使用金额具有最高值 我被卡住了,告诉我有没有其他的解决办法 var result = getValue(obj); getValue(obj){ var cheapest= Math.min.apply(Math, obj.map(function (el) { return el.netfee; })); var best= Math

如何确定最便宜和最快的速率,并在单个对象中获得值

  • 最便宜的
    是通过使用
    网络费
    具有
    最小值
  • 最快的
    是通过使用
    速度
    拥有
    更少的天数
  • 最佳
    通过使用
    金额
    具有
    最高值
我被卡住了,告诉我有没有其他的解决办法

var result = getValue(obj);
getValue(obj){
 var cheapest= Math.min.apply(Math, obj.map(function (el) {
        return el.netfee;
  })); 
  var best= Math.max.apply(Math, obj.map(function (el) {
        return el.amount;
  }));
  var res= Object.assign({}, cheapest, best);
return res;
}
这么简单

var obj=[
{id:“样本1”,网络费:10,速度:“1天”,金额:“100”},
{id:“sample2”,网费:6,速度:“2天”,金额:“200”},
{id:“样本3”,网络费:4,速度:“3天”,金额:“50”}
];
变量
最便宜=对象减少((acc,cur)=>(acc.netfee(parseInt(acc.speed,10)(会计科目数量>会计科目数量?会计科目:当前)).id;
console.log(“cheapest=”,cheapest)
console.log(“faster=”,faster)

console.log(“best=,best)
您可以应用此技巧,以获得预期输出中的答案:

var obj=[
{
id:“样本1”,
网费:10,,
速度:“1天”,
金额:“100”
},
{
id:“样本2”,
网费:6,,
速度:“2天”,
金额:“200”
},
{
id:“样本3”,
网费:4,
速度:“3天”,
金额:“50”
}
];
var结果=getValue(obj);
函数getValue(obj){
var cheapest=obj.reduce((acc,next)=>acc.netfeeparseInt(acc.speed)+会计科目金额>+下一个金额?会计科目:下一个)。id;
var res=Object.assign({}{
最便宜的,
最快的,
最好的
});
返回res;
}

控制台日志(结果)在没有设置基础的情况下不要使用parseInt,比如parseInt(acc.speed,10)。它为您节省了大量调试时间,“到底发生了什么事?”键入questions.@muka.gergely我想如果parseInt方法的
string
参数以0x或0以外的任何值开头,那么
radix
参数默认为10?可能是这样的,但是在代码片段中没有任何东西可以保证-你可以有0.5天的速度(只要代码允许),而且它比抱歉更安全:)哦,是的,你有一个理由:)
return{cheapest,faster,best}执行相同的操作;)对于信息
+acc.amount
Number(acc.amount)
@MrJ真的吗??好吧,jsperf.com告诉我的不是这样,看看吧。?我认为这种性能测试在这种情况下是无效的。该测试应针对少于10个回路进行,并使用表格中的数字和负值;因此,我们可以更好地判断解释器JS的工作,而不必启动操作优化程序。哦,是的,我理解你的观点。
var obj=[
{ 
  id: "sample1",
  netfee: 10,
  speed: "1days",
  amount: "100"
},
{
 id: "sample2",
 netfee: 6,
 speed: "2days",
 amount: "200"
},
{
 id: "sample3",
 netfee: 4,
 speed: "3days",
 amount: "50"
}
]

Expected Output:

Cheapest : Sample 3

Fastest: Sample 1

Best: Sample 2