【问题标题】:I need that this function return the "difference" between this arrays我需要这个函数返回这个数组之间的“差异”
【发布时间】:2020-07-07 20:05:37
【问题描述】:

我有这个数组:

prices = [1,2,3,4,5,6,7,8,9,10]

还有这个功能:

function less(value, prices) {
    return prices.filter(p => p <= value);
 }
  
 function more(value, prices){
    return precos.filter(p => p >= valor);
 }


**function between(less, more, prices){
    let soma = less(value, prices).concat(more(value, prices))
    
    return prices.filter(x => !soma.includes(x))

}**

如何使用 between 函数返回 less 和 more 之间的差异? 例如:

between(5, 10, [ 1,2,3,4,5,6,7,8,9,10]) -----> the function return is an array: [5, 6, 7, 8, 9, 10]

我只能改变函数之间的。 我尝试使用循环,但不起作用。 :/

【问题讨论】:

  • 这段代码有几个问题。一方面,您不能只更改您正在使用的文字语言。它不会神奇地知道precos 意味着prices,它会在您在这里使用的所有未定义变量和方法上出错。
  • 对此感到抱歉.. 我忘了我在这里写的时候没有改变这个变量。源代码中的变量名称正确。我尝试更改它以使您更容易理解。

标签: javascript arrays


【解决方案1】:

您可以只使用more 函数的输出作为less 函数的参数,而不是使用Array.concat,这里是更正:

function less(value, prices) {
    return prices.filter(p => p <= value);
}
  
function more(value, prices){
    return prices.filter(p => p >= value);
}

function between(l, m, prices){
    return less(m, more(l,prices));
}

【讨论】:

  • 非常感谢。这是正确的。现在我想我可以理解了……它是函数内部的函数,函数内部的函数。大声笑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2019-08-11
  • 2019-03-10
  • 2018-11-01
相关资源
最近更新 更多