数组去重,找出数组重复的元素,找出数组第一个不重复的

目录

一、数组去重

利用两个for循环和push方法

利用两个for循环和splice方法

利用sort和splice

利用对象属性的不重复性

利用indexOf和push

利用set对象和拓展运算符

二、找出数组重复的元素

利用利用indexOf和lastIndexOf

三、找出数组第一个不重复的元素

利用利用indexOf和lastIndexOf,for循环break(或者forEach try catch)


一、数组去重

利用两个for循环和push方法

思路:利用两个for循环.遍历数组中的每一项,对每一项又遍历这项后面的每一项。也就是将当前元素与他后面的所有元素作比较,只要碰到与当前元素相等的情况,利用j = ++i重新开始外层大循环。直到其后面没有重复的元素就push进新数组

	

利用两个for循环和splice方法

思路 对数组中的每一项,与该项后面的每一项比较,若相同,就删掉后面的相同项

	

利用sort和splice

思路:先用sort方法将数组排序,然后在老数组中循环遍历,将当前项与他的后一项比较,如果相等就删除当前项,并且进行i--和len--继续遍历

	

利用对象属性的不重复性

思路:利用对象的属性不能相同的特性.将数组中的每一项当做对象的属性名,属性名是不可以重复的。新建一个对象obj,遍历数组中的每一项,如果!obj[arr[i]]为true,就将该值push进结果数组

	

利用indexOf和push

思路:对于老数组中的每一项,在新数组中进行查找,如果没有(返回-1),push进去

	

利用set对象和拓展运算符

思路:ES6中的set是一个类似于数组的对象,其属性不能重复。利用Array.from或者拓展运算符将其转化为数组

	

二、找出数组重复的元素

  • 利用利用indexOf和lastIndexOf

思路:遍历每一项,新建res数组保存结果。利用indexOf和lastIndexOf,当两者不相等,并且res数组中没有这个元素的时候,说明这个元素第一次重复,push进结果数组

	

三、找出数组第一个不重复的元素

  • 利用利用indexOf和lastIndexOf,for循环break(或者forEach try catch)

思路:遍历每一项,一旦发现indexOf和lastIndexOf相等,就可以跳出循环。如果用for遍历,可以用break跳出去。如果用forEach遍历,只能用try catch语句块跳出遍历。本程序用try catch

	

 

你可能感兴趣的:(数组去重,找出数组重复的元素,找出数组第一个不重复的)