我可以在javascript对象中保存条件吗?
我正在根据各种条件对一系列对象进行排序 我想计算每个对象的各种条件,我不知道我应该如何做到这一点。我是否可以向对象添加条件:我可以在javascript对象中保存条件吗?,javascript,Javascript,我正在根据各种条件对一系列对象进行排序 我想计算每个对象的各种条件,我不知道我应该如何做到这一点。我是否可以向对象添加条件: var conversions = [ { name: "Användare", conditional: conversion.time_gap > 0, count: 0, } ] 然后循环并测试它们: _.each(user.apilog, function(event){ _.each(conversions, fu
var conversions = [
{
name: "Användare",
conditional: conversion.time_gap > 0,
count: 0,
}
]
然后循环并测试它们:
_.each(user.apilog, function(event){
_.each(conversions, function(conversion){
if(conversion.conditional){
conversion.count++;
}
})
})
这不起作用,因为时间间隔是user.apilog中的一个变量,没有定义,但类似于这样。您可以使用一个函数:
var conversions = [
{
name: "Användare",
conditional: function(v) { return (v > 0); },
count: 0,
}
]
称为:
_.each(user.apilog, function(event){
_.each(conversions, function(conversion){
if(conversion.conditional(time_gap)){
conversion.count++;
}
})
})
您可以使用以下函数:
var conversions = [
{
name: "Användare",
conditional: function(v) { return (v > 0); },
count: 0,
}
]
称为:
_.each(user.apilog, function(event){
_.each(conversions, function(conversion){
if(conversion.conditional(time_gap)){
conversion.count++;
}
})
})
如果没有u,则无法回答。每个都是如何进行的…我可以在转换中使用转换…创建对象属性时,值可以是任何JS表达式的结果。因此,可以创建一个属性
conditional
,它是计算转换的结果。时间间隔>0
。如果按{conditional:conversion.time\u gap>0}
的方式执行,则将在创建属性时设置该值。如果需要在读取属性时对其进行动态计算,最简单的方法是将其改为方法:conditional:function(){return conversion.time\u gap>0;}
。为什么不直接在if
中计算user.apilog.magicproperty
?在这些事情中使用条件时,应该注意使用括号:条件:(conversion.time\u gap>0)如果没有u,则无法回答。每个都是如何进行的…我可以在转换中使用转换…创建对象属性时,值可以是任何JS表达式的结果。因此,可以创建一个属性conditional
,它是计算转换的结果。时间间隔>0
。如果按{conditional:conversion.time\u gap>0}
的方式执行,则将在创建属性时设置该值。如果需要在读取属性时对其进行动态计算,最简单的方法是将其改为方法:conditional:function(){return conversion.time\u gap>0;}
。为什么不直接在if
中计算user.apilog.magicproperty
?在以下情况下使用条件时应注意使用括号:conditional:(conversion.time\u gap>0)以及是否可以使用箭头语法,它看起来真的很不错:conditional:v=>v>0
@FelixKling-现在有没有办法让JavaScript支持lambda表达式?箭头表达式很可爱,但我很小心在几乎没有任何地方支持它们时建议它们。@TravisJ:是的@保罗·鲁布:Transpiler解决了这个问题。例如。无需犹豫。如果可以使用箭头语法,它看起来真的很不错:conditional:v=>v>0
@FelixKling-现在有没有一种JavaScript支持lambda表达式的方法?箭头表达式很可爱,但当它们几乎不受支持时,我会谨慎地建议它们。@TravisJ:是的@保罗·鲁布:Transpiler解决了这个问题。例如。没有必要退缩。