数组去重
(1)
思路:利用一个函数中for遍历查找出重复元素,有则返回turn,如果全部备遍历完后没则返回false
利用另一个函数判断上一个返回的值
方法:
//去重
//遍历一遍找出重复元素
//方法是:将新数组与原数组进行对比,第一次出现就添加到新数组里,否则就不进行操作。
function has(arra,val){//是否有重复的数值,存在返回turn,否则false
for(let i=0,len=arra.length;i<len;i++){
if(arra[i]===val)//存在
return true;
}
return false;
}
function strOne(array){
var newArray = [];
for(var i in array){
if(!has(newArray,array[i]))
newArray.push(array[i]);
}
return newArray;
}
console.log(strOne(arr));
(2)(es6新增)
方法:
function dedupe(array){
return Array.from(new Set(array));
}
console.log(dedupe(arr));
(3)
方法:
function de_weight (array){
var newArray = [];
for(let i=0,len=array.length;i<len;i++){
for(let j=i+1;j<len;j++){
if(array[i]===array[j])
j=++i;
}
newArray.push(array[i]);
}
return newArray;
}
(4)
方法:
//利用对象来给数组去重
var arr = [12,1,1,12,45,2,3,45,5,6,7,89,9,9,89,1,1,1];
var conet = {};
for(let i=0,len=arr.length;i<len;i++){
conet[arr[i]] = arr[i];
}
console.log(Object.values(conet));
字符串去重:
(1)
var str = "dwqewdfsafdfwqewdsadsa";
var strArray = [],newArray=[];
console.log(str.charAt(4));
console.log(str.length);
for(let i=0,len=str.length;i<len;i++){
strArray[i] = str.charAt(i);
}
console.log(strArray);
for(let i=0,len=strArray.length;i<len;i++){
for(let j=i+1;j<len;j++){
if(strArray[i]===strArray[j]){
j=++i;
}
}
newArray.push(strArray[i]);
}
console.log(newArray);
str = "";
for(let i=0,len=newArray.length;i<len;i++){
str += newArray[i];
}
console.log(str);
(2)
/**
*思路:对象不会获取相同的属性,从而将属性与属性值对应,拿出属性值,组成新的数组
*/
var str = "dwqewdfsafdfwqewdsadsa";
var conet ={};
for(let i=0,len=str.length;i<len;i++){
conet[str.charAt(i)] = str.charAt(i);
}
let string = Object.values(conet);//获取对象里的对应的值
console.log(typeof string);
console.log(string);
string = string.join("");//将数组对象转换变成字符串
console.log(string);
去重的方法(数组、字符串)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...