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

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

<!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>
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值