我可以在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解决了这个问题。例如。没有必要退缩。