欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js(javaScript)如何取出数组中的不同值

程序员文章站 2024-02-17 10:19:28
...

做法是把数组中的相同值都删除掉,剩下的就是不同的,写法与注解如下

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>	
</body>
</html>
<script>
function fn(arr){
// 定义一个新数组,用来存放不同值,与传进来的数组arr做比较的
var newArr=[];
//在newArr添加传进来的数组的第一项
newArr.push(arr[0]);
var j=0;
// 遍历数组停止的条件,由于不知道什么时候停止循环,所有用while
//循环判断,为什么用两数组的长度做循环条件,看下面代码的数组的删增就会明白
	while(newArr.length<arr.length){
		// 这里的i=j+1,for循环是删除与arr相同的值
		for (var i = j+1; i<arr.length; i++) {
			// arr的第一项不需要比较
			// 比较是从arr的第二项开始于newArr的第一项开始
			if(arr[i]==newArr[j]){
				// 没当有相同值时,就删除掉
				arr.splice(i,1);
				// 删除掉之后,后面的项的索引(下标)都会减1
				// 所以避免有遗漏项,所以索引要对应减1
				i--;
			}
		}
		// 当把相同值删除完时,newArr长度要加一
		j++;
		// 把arr下一个不同值存起来用来作比较
		newArr.push(arr[j]);
	}
	// 当循环结束后arr的相同值也就删除完了
	return arr;
}
 
var arr=[1,2,3,3,4,6,6,6,9,9,9,9];
fn(arr);
 
console.log(arr);
</script>
复制代码