Javascript 在下划线/lodash链中插入数组
我试图在lodash/下划线链中创建一个数组,但它不起作用 例如:Javascript 在下划线/lodash链中插入数组,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,我试图在lodash/下划线链中创建一个数组,但它不起作用 例如: var foo = _.chain(currentValue) // let's say "1,2,4" .split(',') // now it is [1,2,4] .max() // now it is 4 .tap(function(maxValue) {
var foo = _.chain(currentValue) // let's say "1,2,4"
.split(',') // now it is [1,2,4]
.max() // now it is 4
.tap(function(maxValue) {
return _(Array(maxValue)).fill(false);
}) // should be now [false, false, false, false] but doesn't work
.value();
我缺少的是什么?这里是针对这个问题的纯js解决方案
var str=“1,2,4”;
var result=Array(Math.max.apply(null,str.split(',')).fill(false);
log(result)
这是一个纯js解决方案
var str=“1,2,4”;
var result=Array(Math.max.apply(null,str.split(',')).fill(false);
console.log(result)
您可以使用,和\uuu.fill()
:
var currentValue=“1,2,4”;
var foo=\ u0.chain(currentValue)//假设为“1,2,4”
.split(“,”)//现在是[“1”、“2”、“4”]
.max()//现在是“4”
.times()/[未定义,未定义,未定义,未定义]
.填写(假)/[假,假,假,假]
.value();
console.log(foo)代码>
您可以使用,和\uuu.fill()
:
var currentValue=“1,2,4”;
var foo=\ u0.chain(currentValue)//假设为“1,2,4”
.split(“,”)//现在是[“1”、“2”、“4”]
.max()//现在是“4”
.times()/[未定义,未定义,未定义,未定义]
.填写(假)/[假,假,假,假]
.value();
console.log(foo)代码>
1).tap
是变异参数,最好使用.thru
_.chain('1,2,4')
.split(',')
.max()
.times(_.constant(false))
.value();
2) 要获得链接的结果,必须在链的末尾调用.value()
3) 所以我的建议
_.chain('1,2,4')
.split(',')
.max()
.thru(function(maxValue) {
return _.chain(maxValue).times(_.constant(false)).value();
})
.value();
如果真的不需要,点击或
_.chain('1,2,4')
.split(',')
.max()
.times(_.constant(false))
.value();
1) \uu.tap
是变异参数,最好使用\uu.thru
_.chain('1,2,4')
.split(',')
.max()
.times(_.constant(false))
.value();
2) 要获得链接的结果,必须在链的末尾调用.value()
3) 所以我的建议
_.chain('1,2,4')
.split(',')
.max()
.thru(function(maxValue) {
return _.chain(maxValue).times(_.constant(false)).value();
})
.value();
如果真的不需要,点击或
_.chain('1,2,4')
.split(',')
.max()
.times(_.constant(false))
.value();
虽然我从不使用lodash或其他任何东西,但我会尝试使用Array(maxValue)
而不是(Array(maxValue))
。我认为这只是给了你改变价值的机会。由于字符串是不可变的,这可能不是tap
的用例。是的,我误解了这里的tap,尽管我从来没有使用lodash或其他任何东西,但我会尝试Array(maxValue)
而不是(Array(maxValue))
。我认为tap
对您的返回语句没有任何作用。我认为这只是给了你改变价值的机会。因为字符串是不可变的,所以这可能不是tap
的用例。是的,我误解了tap,它在纯Javascript中的可读性不如Lodash版本。此外,一些函数可能会错过Javascript,即使本例并非如此。与Lodash版本相比,纯Javascript版本的可读性较差。此外,一些函数可能会错过Javascript,即使示例中不是这样。