数组综合练习

本文深入探讨了数组处理的各种高效方法,包括使用join()和reverse()函数简化数组格式化和翻转,通过filter()移除特定条件的元素,统计数组中各元素的出现频率,以及去除数组中的重复项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组综合练习

  1. 将一个数组输出为 | 分割的形式,使用两种方式实现
<script>
// 方法1:
var arr = [1,2,3,4];
var str = arr[0];
var separator = "|";
for(var i=1; i<arr.length; i++){
	str+=separator+arr[i];
} // 内容容易溢出,不建议使用

//方法2:
var arr = [1,2,3,4];
console.log(arr.join("|")); //expected output : 1|2|3|4
</script>
  1. 将一个字符串数组进行翻转
<script>
方法1:
var arr = [1,2,3,4,5];
function fn(array){
	var newArr = [];
	for(var i = array.length-1;i>=0;i--){
		newArr[newArr.length] = array[i];
	}
	return newArr;
}
console.log(fn(arr)); // expected output : [5,4,3,2,1]

方法2:
var arr = [1,2,3,4,5];
function fn2(arr){
	for(var i = 0; i<arr.length/2;i++){
		var temp = arr[i];
		arr[i] = arr[arr.length-1-i];
		arr[arr.length-1-i] = temp;
	}
	return arr;
}
console.log(fn2(arr)); // expected output : [5,4,3,2,1];

方法3:
var arr = [1,2,3,4,5];
console.log(arr.reverse());
</script>
  1. 工资的数组[1500,1200,2000,2100,1800],把工资超过两千的删除
var arr = [1500,1200,2000,2100,1800];
var arr2 = arr.filter(function (ele,index,array){
	if(ele<200){
		reurn true;
	}
	return false;
});
console.log(arr4); // expected output : [1500,1200,1800]
  1. [“c”,“a”,“x”,“a”,“x”,“a”] 找出数组中每个元素出现的次数

//利用对象来做,因为我们想知道a出现了多少次,x出现了多少次,c出现了多少次
//使用键值对比较方便
//思路:创建一个对象,判断数组中的元素,在对象中是否存在。如果存在+1。

<script>
var arr = ["c","a","x","a","x","a"];
var json = {};
for(var i=0; i<arr.length; i++){
	if(json[arr[i]]){
		json[arr[i]] += 1;	
	}else{
		json[arr[i]] = 1;
	}
}
console.log(json); 
// expected output : {"a":3,"x":2,"c":1}
</script>
  1. 编写一个方法,去除数组中的重复元素
<script>
var arr = [1,2,3,1,2,3];
console.log(arr);
//思路:创建一个新数组,循环遍历,只要新数组中有老数组的值,就不再添加了

funtion fn(array){
	for(var i = 0; i<array.length; i++){
		var newArr = [];
		var bool = true;
		for(var j = ; j<newArr.length; j++){
			if(newArr[j] === array[i]){
				bool = false;
			}
		}
		if(bool){
			newArr[newArr.length] = array[i];
		}
	}
}
console.log(fn(arr));
// expected output : [1,2,3],
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值