数码资讯
js实现一个数组来称重、确定数组和对象中相同的内容。
复制代码代码如下所示: * *数组元素返回到权重 * / 如果(typeof Array.prototype.distinct!=函数{){ array.prototype.distinct =函数(){ This.sort(); 对于(var i = 0;i < this.length-1;i++
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
复制代码代码如下所示:
*
*数组元素返回到权重
* /
如果(typeof Array.prototype.distinct!=函数{){
array.prototype.distinct =函数(){
This.sort();
对于(var i = 0;i < this.length-1;i++){
如果(美元。isplainobject(这{我})美元。isplainobject(这{我+ 1 })){
如果(O2O(这个{ },这个{ i + 1 })){
this.splice(I,1);
}
} else if($。ISArray(这{我})美元。ISArray(这{我+ 1 })){
如果(A2A(这{我},{ 1 }这我+)){
this.splice(I,1);
}
否则如果(此{ } = {此{ i + 1 }){
this.splice(I,1);
}
}
}
}
*
*比较的对象是否相同
* /
功能的O2O(O1,O2){
如果(!(美元。isplainobject(O1)美元。isplainobject(O2))){
返回false;
}
VaR K1 = { } = { },K1,K2 = { };
美元。每个(O1,函数(k,v){
k1.push(K);
});
每一个(O2,函数(k,v){)
k2.push(K);
});
如果(k1.length!= K2。长度){
返回false;
}
K1 = K1;
K1 = k1k2.concat(K2);
k1k2.distinct();
如果(k1.length!= k1k2.length | | k2.length!= K1。长度){
返回false;
}
var标志=真;
美元。每个(K1,函数(i,v){
VaR V1 = O1 {五};
var;
如果(typeof V1!= typeof V2){
标志=假;
其他{ }
如果(美元。isplainobject(V1)美元。isplainobject(V2)){ / /递归
旗帜= O2O(V1,V2);
如果(!旗){
返回false;
}
} else if($。ISArray(V1)美元。ISArray(V2)){
(V1,V2旗= A2A);
如果(!旗){
返回false;
}
其他{ }
如果(V1)!= V2){
标志=假;
}
}
}
});
返回标志;
}
*
*比较数组是否完全相同
* /
A2A(A1、A2)功能{
如果(!(美元。ISArray(A1)美元。ISArray(A2))){
返回false;
}
如果(a1.length!=长度){
返回false;
}
a1.sort();
a2.sort();
对于(var i = 0;i < a1.length;i++){
如果(typeof A1 {我}!=型A2 {我}){
返回false;
}
如果(美元。isplainobject(A1 {我})美元。isplainobject(A2 {我})){
VaR retval = O2O(A1 {我},A2 {我});
如果(!retval){
返回false;
}
} else if($。ISArray(A1 {我})美元。ISArray(A2 {我})){ / /递归
如果(!A2A(A1 {我},{我} A2)){
返回false;
}
}如果(i })!= { } { }){
返回false;
}
}
返回true;
}
*
*数组元素返回到权重
* /
如果(typeof Array.prototype.distinct!=函数{){
array.prototype.distinct =函数(){
This.sort();
对于(var i = 0;i < this.length-1;i++){
如果(美元。isplainobject(这{我})美元。isplainobject(这{我+ 1 })){
如果(O2O(这个{ },这个{ i + 1 })){
this.splice(I,1);
}
} else if($。ISArray(这{我})美元。ISArray(这{我+ 1 })){
如果(A2A(这{我},{ 1 }这我+)){
this.splice(I,1);
}
否则如果(此{ } = {此{ i + 1 }){
this.splice(I,1);
}
}
}
}
*
*比较的对象是否相同
* /
功能的O2O(O1,O2){
如果(!(美元。isplainobject(O1)美元。isplainobject(O2))){
返回false;
}
VaR K1 = { } = { },K1,K2 = { };
美元。每个(O1,函数(k,v){
k1.push(K);
});
每一个(O2,函数(k,v){)
k2.push(K);
});
如果(k1.length!= K2。长度){
返回false;
}
K1 = K1;
K1 = k1k2.concat(K2);
k1k2.distinct();
如果(k1.length!= k1k2.length | | k2.length!= K1。长度){
返回false;
}
var标志=真;
美元。每个(K1,函数(i,v){
VaR V1 = O1 {五};
var;
如果(typeof V1!= typeof V2){
标志=假;
其他{ }
如果(美元。isplainobject(V1)美元。isplainobject(V2)){ / /递归
旗帜= O2O(V1,V2);
如果(!旗){
返回false;
}
} else if($。ISArray(V1)美元。ISArray(V2)){
(V1,V2旗= A2A);
如果(!旗){
返回false;
}
其他{ }
如果(V1)!= V2){
标志=假;
}
}
}
});
返回标志;
}
*
*比较数组是否完全相同
* /
A2A(A1、A2)功能{
如果(!(美元。ISArray(A1)美元。ISArray(A2))){
返回false;
}
如果(a1.length!=长度){
返回false;
}
a1.sort();
a2.sort();
对于(var i = 0;i < a1.length;i++){
如果(typeof A1 {我}!=型A2 {我}){
返回false;
}
如果(美元。isplainobject(A1 {我})美元。isplainobject(A2 {我})){
VaR retval = O2O(A1 {我},A2 {我});
如果(!retval){
返回false;
}
} else if($。ISArray(A1 {我})美元。ISArray(A2 {我})){ / /递归
如果(!A2A(A1 {我},{我} A2)){
返回false;
}
}如果(i })!= { } { }){
返回false;
}
}
返回true;
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。