我想为lodash differenceBy编写我自己的迭代器,它给我不同的大于5的数组值。
根据文档。iteratee用于“生成比较它们的标准”。
根据文档提供的示例:
_.differenceBy([1, 2, 3, 5, 6], [1, 2, 3, 8, 10], Math.floor); // [5, 6]这与使用Math.floor()类似。
let iter_floor = (value) => {
return Math.floor(value);
};
let differenceBy = _.differenceBy([1, 2, 3, 5, 6], [1, 2, 3, 8, 10], iter_floor);
console.log(differenceBy); // [5, 6]但是当我尝试这个的时候
let iter_greater = (value) => {
return value > 5;
};
let differenceBy = _.differenceBy([1, 2, 3, 5, 6], [1, 2, 3, 8, 10], iter_greater);
console.log(differenceBy); // []我得到一个空数组。我希望获得大于5的不同数组值
lodash differenceBy的源代码在这里:https://github.com/lodash/lodash/blob/4.17.5/lodash.js#L6971
你能给我一个例子,如何为这种情况编写一个迭代器吗?
谢谢。
发布于 2018-04-25 15:04:42
通过使用带比较的函数,可以创建具有布尔值的两个数组。
这
_.differenceBy([1, 2, 3, 5, 6], [1, 2, 3, 8, 10], iter_greater);分两个步骤工作:
iter_greater1、2、3、5、6 -> false、true -> false、true、true
false,true first array false,true,true第二个数组false存在于第二个数组true存在于第二个数组//没有值,第二个数组包含true和false
https://stackoverflow.com/questions/50006811
复制相似问题