Arrays 将一维数组转换为二维数组,并将数组附加到图纸的最后一行
我有两个数组列表,从中我发现了差异Arrays 将一维数组转换为二维数组,并将数组附加到图纸的最后一行,arrays,google-apps-script,compare,difference,Arrays,Google Apps Script,Compare,Difference,我有两个数组列表,从中我发现了差异 arr1=['Sam','Annie','Margorie','Ester','John']; arr2=['Bill'、'Sally'、'Sam'、'Annie'、'Suman'、'Margorie'、'Ester'、'Pierre'、'John']; var diff=arr2.filter(x=>!arr1.includes(x)); console.log(diff)//result….diff=['Bill','Sally','Suman','Pi
arr1=['Sam','Annie','Margorie','Ester','John'];
arr2=['Bill'、'Sally'、'Sam'、'Annie'、'Suman'、'Margorie'、'Ester'、'Pierre'、'John'];
var diff=arr2.filter(x=>!arr1.includes(x));
console.log(diff)//result….diff=['Bill','Sally','Suman','Pierre']
要组合映射/过滤器,请使用简单的for循环/if或reduce:
arr1=['Sam','Annie','Margorie','Ester','John'];
arr2=['Bill'、'Sally'、'Sam'、'Annie'、'Suman'、'Margorie'、'Ester'、'Pierre'、'John'];
常量diff=arr2.reduce((diff,x)=>!arr1.includes(x)?[…diff,[x,“New”]]:diff,[]);
console.log(diff)//结果……diff=['Bill','Sally','Suman','Pierre']
谢谢。顺便提一下,可以将其重写为普通javascript而不是使用箭头函数吗?我仍在努力使用箭头函数。@sifarconst diff=arr2.reduce(函数(diff,x){return!arr1.includes(x)?[…diff,[x,“New”]]:diff},[])
或更详细地const diff=arr2.reduce(函数(diff,x){if(!arr1.includes(x))返回diff.concat([x,“New”]);返回diff},[])代码>太好了!但是使用Const
而不是Var
有什么原因吗?从速度性能的角度来看,对于大范围,哪一个应该更快?@sifarconst
或let
更可取,因为范围限制,因此更不容易出错<通常应避免使用代码>风险值
。拥有优秀的资源。