我目前正在学习英语和英语。我创建了一个简单的函数和一个内联测试。
下面是测试和它下面的函数
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 ]