Gal*_*a88 18 arrays typescript difference
有没有办法在TypeScrpit中从list_b返回list_a的缺失值?
例如:
var a1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
var a2 = ['a', 'b', 'c', 'd', 'z'];
Run Code Online (Sandbox Code Playgroud)
结果值是
['e', 'f', 'g'].
Run Code Online (Sandbox Code Playgroud)
提前致谢
Nit*_*mer 41
可能有很多方法,例如使用Array.prototype.filter():
var a1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
var a2 = ['a', 'b', 'c', 'd'];
let missing = a1.filter(item => a2.indexOf(item) < 0);
console.log(missing); // ["e", "f", "g"]
Run Code Online (Sandbox Code Playgroud)
(游乐场代码)
该filter函数运行在元素上a1,并将它(但在一个新数组中)减少到a1(因为我们迭代它的元素)并且缺少的元素中a2.
a2缺少的元素a1将不包含在结果数组(missing)中,因为过滤器函数不会迭代a2元素:
var a1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
var a2 = ['a', 'b', 'c', 'd', 'z', 'hey', 'there'];
let missing = a1.filter(item => a2.indexOf(item) < 0);
console.log(missing); // still ["e", "f", "g"]
Run Code Online (Sandbox Code Playgroud)
(游乐场代码)
Ros*_*ott 12
Typescript只提供设计/编译时的帮助,它不添加JavaScript功能.因此,适用于JavaScript的解决方案将适用于Typescript.
有很多方法可以解决这个问题,我的选择将是lodash:https://lodash.com/docs#difference
_.difference(['a', 'b', 'c', 'd', 'e', 'f', 'g'],['a', 'b', 'c', 'd']);
Run Code Online (Sandbox Code Playgroud)
Fis*_*man 11
你只能使用这个方法。首先是较大的桌子。
const a1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
const a2 = ['a', 'b', 'c', 'd', 'x', 'y', 'z'];
const difference_a1 = a1.filter(x => !a2.includes(x));
const difference_a2 = a2.filter(x => !a1.includes(x));
console.log(difference_a1);
/* ["e","f","g"] */
console.log(difference_a2);
/* ["x","y","z"] */Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32979 次 |
| 最近记录: |