为什么我的函数使用lodash _.forEach返回相同的值?



我目前正在学习英语和英语。我创建了一个简单的函数和一个内联测试。

下面是测试和它下面的函数

import _ from 'lodash'
if (import.meta.vitest) {
const { describe, expect, it } = import.meta.vitest;
describe('#name', () => {
it('should..', () => {
expect(
collectForEach([1, 2], function (n) {
return n * 2;
}),
).toEqual([2, 4]);
});
});
}
function collectForEach(collection, iteratee) {
return _.forEach(collection, iteratee);
}

如测试中所述,我希望返回一个数组[2,4]。然而,测试失败了,因为实际返回值是[1,2]。我是不是误解了_的用法?forEach还是我犯了不同类型的错误?

您应该使用lodash.map()

import assert from 'assert'
import _ from 'lodash'
const collectMap = (collection, iteratee) => _.map(collection, iteratee)
const actual = collectMap([1,2], n => n * 2);
const expected = [2,4]
assert.deepStrictEqual(actual, expected, 'should pass')
console.log('actual: ', actual)

执行结果:

actual:  [ 2, 4 ]

相关内容

  • 没有找到相关文章

最新更新