记录学习Javascript基础数组和算法练习题

目录

1、返回去掉arr数组重复项的新数组。

2、编写一个二维数组,存储九九乘法表。

3、用表格的方法打印九九乘法表。

4、将“我爱北京天安门”逆序。

5、二维数组的转置输出

6、给定A、B两个数组,同时存在于A、B两个数组中的项称为“交集”;只在A数组中,且不在B数组中的项称为“差集”

编写函数intersection(arr1,arr2)返回两个数组的交集数组;

编写函数difference(arr1,arr2)返回两个数组的差集数组

7、从1-10的数组中随机选择不重复的3项样本。

8、编写函数left(arr,n)可以让数组arr循环左移n位。

例如left([66,77,88,99],2)的结果是[88,99,66,77]

9、编写函数isAnagram(str1,str2)用来检查两个字符串是否互为变位词。变位词指不计顺序的情况下两个单词包含完全相同的字母,不多不少。比如“silent”和“listen”互为变位词。

10、编写函数macrepeat(arr)返回数组中连续出现最多次的项。

例如maxrepeat([1,1,2,2,2,3,3,3,3,3,3,4])将返回3.


1、返回去掉arr数组重复项的新数组。

 

2、编写一个二维数组,存储九九乘法表。

3、用表格的方法打印九九乘法表。

 

4、将“我爱北京天安门”逆序。

 

5、二维数组的转置输出

<!DOCTYPE html>
<html>
<head>
	<title>二维数组的转置输出 - 拾光分享网</title>
</head>
<body>
<script type="text/javascript">
	//行数
	var row = Number(prompt("输入二维数组的行数:"));
	while(isNaN(row)){
		row = Number(prompt("数据错误,请重新输入二维数组的行数:"));
	}
	//列数
	var col = Number(prompt("输入二维数组的列数:"));
	while(isNaN(col)){
		col = Number(prompt("数据错误,请重新输入二维数组的列数:"));
	}
	var arr = new Array(row);//第一层,行数
	for(var i = 0;i < arr.length;i++){
		arr[i] = new Array(col);//二维数组的列数
	}
	console.log(arr);

	var str = "转置前的数组内容:<p>"; 

	//外层数据
	for(var i = 0;i < arr.length; i++){
		//内层数据
		for(var j = 0;j < arr[i].length; j++){
			arr[i][j] = ( i + 1 ) * ( j + 1 );
			str += arr[i][j] + "&nbsp;&nbsp;&nbsp;&nbsp;";
		}
		str += "<p>";
	}
	console.log(arr);
	document.write(str);

	str = "转置后的数组内容:<p>"; 

	//转置的特点:原先的行变成列,原先的列变成行
	for(var j in arr[0]){		//j遍历数组的列号
		for(var i in arr){		//外层数组行号	
			str += arr[i][j] + "&nbsp;&nbsp;&nbsp;&nbsp;";
		}
		str += "<p>";
	}
	document.write(str);
</script>
</body>
</html>

 

6、给定A、B两个数组,同时存在于A、B两个数组中的项称为“交集”;只在A数组中,且不在B数组中的项称为“差集”

编写函数intersection(arr1,arr2)返回两个数组的交集数组;

编写函数difference(arr1,arr2)返回两个数组的差集数组

7、从1-10的数组中随机选择不重复的3项样本。

8、编写函数left(arr,n)可以让数组arr循环左移n位。

例如left([66,77,88,99],2)的结果是[88,99,66,77]

9、编写函数isAnagram(str1,str2)用来检查两个字符串是否互为变位词。变位词指不计顺序的情况下两个单词包含完全相同的字母,不多不少。比如“silent”和“listen”互为变位词。

10、编写函数macrepeat(arr)返回数组中连续出现最多次的项。

例如maxrepeat([1,1,2,2,2,3,3,3,3,3,3,4])将返回3.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值