数码资讯
Javascript获得一个多个数组交集的简单实例。
在项目中需要多个数组的交集,因此这个示例只适用于特定场景。例如,数组var = { 100010001100021000 };b数组var = { 10002, 10003 };C数组var C==;这三个数组的交集数组需要得到。 具体思路如下:首先,一个最小的数组中的第一个数组元素,和的最小的数是
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
在项目中需要多个数组的交集,因此这个示例只适用于特定场景。例如,数组var = { 100010001100021000 };b数组var = { 10002, 10003 };C数组var C==;这三个数组的交集数组需要得到。
具体思路如下:首先,一个最小的数组中的第一个数组元素,和的最小的数是数组,然后长迭代每个阵列,这些阵列,得到最短的长度,同时获得最短长度的数组,然后遍历最小阵列,每个阵列开始比较的元素,并使用计数器来判断元素存在于每一个阵列,即交叉口元。
思路比较简单,但可以实现多数组交集,代码如下:
复制代码代码如下所示:
新的文件
功能getValues(obj){
var值 ;
var = obj.options.length;
对于(var i = 0;i < l;i + +){
如果(i)!=(L-1){ {
价值= obj.options(I)值+ _ ;
}
{其他
价值= obj.options(我)的价值;
}
}
返回值;
}
功能_test(){
VaR ID = getValues(文件。所有。AA);
VaR AA = _getintersection(IDS);
}
功能_getintersection(SRC){
无功性= src.split(_ );
最小数组
VaR初步= null;
VaR最小=性{ 0 }。分裂(长度); / /初始化第一阵列的最小长度
初步=性{ 0 }。分裂(
对于(var i = 1,len = tary.length;我< len;i++){
VaR温度=性{我}。分裂(
如果(temp.length < min){
min = temp.length;
初步=温度;
}
}
警报(最小阵:+初步);
var =;
对于(var i = 0,len = minary.length;我< len;i++){
无功srcnum = parseInt(初步{我});
var计数器= 0;
对于(var j = 0,将tary.length;J <会;j++){
VaR TT =性{ j}。分裂(
对于(var k = 0,L = tt.length;K<L;K +){
VaR塔南= parseInt(TT {克});
如果(srcnum = =塔南){
计数器+;
}
}
}
如果(反= =总长度){
ret = srcnum +
}
}
ret = strslice(RET,',');
警报(交集是:+ RET);
}
删除结束分隔符
功能strslice(STR,分裂){
如果(=空)!(拆分)!=
返回((str.charat(str.length-1)=分裂(0)str.substring,str.length-1):STR);
其他的
返回字符;
}
测试
试验1
试验2
试验3
试验4
试验5
具体思路如下:首先,一个最小的数组中的第一个数组元素,和的最小的数是数组,然后长迭代每个阵列,这些阵列,得到最短的长度,同时获得最短长度的数组,然后遍历最小阵列,每个阵列开始比较的元素,并使用计数器来判断元素存在于每一个阵列,即交叉口元。
思路比较简单,但可以实现多数组交集,代码如下:
复制代码代码如下所示:
新的文件
功能getValues(obj){
var值 ;
var = obj.options.length;
对于(var i = 0;i < l;i + +){
如果(i)!=(L-1){ {
价值= obj.options(I)值+ _ ;
}
{其他
价值= obj.options(我)的价值;
}
}
返回值;
}
功能_test(){
VaR ID = getValues(文件。所有。AA);
VaR AA = _getintersection(IDS);
}
功能_getintersection(SRC){
无功性= src.split(_ );
最小数组
VaR初步= null;
VaR最小=性{ 0 }。分裂(长度); / /初始化第一阵列的最小长度
初步=性{ 0 }。分裂(
对于(var i = 1,len = tary.length;我< len;i++){
VaR温度=性{我}。分裂(
如果(temp.length < min){
min = temp.length;
初步=温度;
}
}
警报(最小阵:+初步);
var =;
对于(var i = 0,len = minary.length;我< len;i++){
无功srcnum = parseInt(初步{我});
var计数器= 0;
对于(var j = 0,将tary.length;J <会;j++){
VaR TT =性{ j}。分裂(
对于(var k = 0,L = tt.length;K<L;K +){
VaR塔南= parseInt(TT {克});
如果(srcnum = =塔南){
计数器+;
}
}
}
如果(反= =总长度){
ret = srcnum +
}
}
ret = strslice(RET,',');
警报(交集是:+ RET);
}
删除结束分隔符
功能strslice(STR,分裂){
如果(=空)!(拆分)!=
返回((str.charat(str.length-1)=分裂(0)str.substring,str.length-1):STR);
其他的
返回字符;
}
测试
试验1
试验2
试验3
试验4
试验5
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。