JavaScript 数组(二)数组练习
2024-10-21 01:20:54
1、求一组数中的最大值和最小值,以及所在位置(最大值和最小值在这组数中的位置)
var numbers = [120, 13, 101, 88, 10, 25];
var max = numbers[0];
var min = numbers[0];
// 最大值的索引
var maxIndex = 0;
// 最小值的索引
var minIndex = 0; for (var i = 1; i < numbers.length; i++) {
// 找大的数
if (max < numbers[i]) {
max = numbers[i];
maxIndex = i;
}
// 找小的数
if (min > numbers[i]) {
min = numbers[i];
minIndex = i;
}
}
console.log(max, min);
console.log(maxIndex, minIndex);
2、将字符串数组用 | 或其他符号分割
var names = ['西伯利亚狼', '灰狼', '土狼', '大尾巴狼', '狗头老高'];
// 往第二个元素之前加分隔符
var seperator = '|'; // 分隔符
var str = names[0];
for (var i = 1; i < names.length; i++) {
str += seperator + names[i];
}
console.log(str);
3、翻转数组 1,2,3,4 -> 4,3,2,1
var numbers = [4, 5, 7, 9]; // 生成一个新的数组 数组中存储 9 7 5 4
var newArray = [];
for (var i = numbers.length - 1; i >= 0; i--) {
newArray[newArray.length] = numbers[i];
}
console.log(newArray);
4、冒泡排序
// 冒泡排序 -- 从小到大的排序
var numbers = [1, 3, 5, 2, 4];
var count = 0; // 记录循环的次数
// 外层循环:控制趟数,每一趟找到一个最大值
for (var i = 0; i < numbers.length - 1; i++) {
count++;
// 内层循环:控制比较的次数,并且判断两个数的大小,把大的数往后移动,小的数往前移动
for (var j = 0; j < numbers.length - 1 - i; j++) {
count++;
// 两两比较 从小到大排序
if (numbers[j] > numbers[j + 1]) {
// 交换位置
var tmp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = tmp;
}
}
}
console.log(numbers);
console.log(count);
5、冒泡排序——优化
var numbers = [1, 3, 5, 2, 4];
var count = 0; // 记录循环的次数
// 外层循环:控制趟数,每一趟找到一个最大值
for (var i = 0; i < numbers.length - 1; i++) {
// 假设数据排好顺序了
var isSort = true;
count++;
// 内层循环:控制比较的次数,并且判断两个数的大小,把大的数往后移动,小的数往前移动
for (var j = 0; j < numbers.length - 1 - i; j++) {
count++;
// 两两比较 从小到大排序
if (numbers[j] > numbers[j + 1]) {
// 没有排好
isSort = false;
// 交换位置
var tmp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = tmp;
}
}
// 某一趟结束,判断一下排序是否结束
// 如何判断排序是否排好,根据是否发生了数据交换,如果发生了数据交换说明没有排好
if (isSort) {
// 如果排好顺序
break;
}
}
console.log(numbers);
console.log(count);
4、
最新文章
- java—数组乘积输入: 一个长度为n的整数数组input 输出: 一个长度为n的数组result,满足result[i] = input数组中,除了input[i] 之外的所有数的乘积,不用考虑溢出例如 input {2, 3, 4, 5} output: {60, 40, 30, 24}
- HDU 5084 HeHe --找规律
- CentOS6 root 用户 vi/vim 无法开启高亮
- kettle中Get Data from XML , Jason Input , 文本文件输入 使用示例
- python unicode&;str 转化
- ReactiveCocoa的冷信号与热信号 探讨
- Java开发小技巧(一)
- Ajax 的用法
- HTML元素分类【三种类型】
- VS2012 TFS解决离职后代码遗留未迁入问题
- SSM-MyBatis-18:Mybatis中二级缓存和第三方Ehcache配置
- SmartSql Map
- JVM垃圾回收机制之对象回收算法
- markdown操作手册
- 【NPOI】WebAPI-使用NPOI导出Excel
- 优化openfire服务器提升xmpp 效率的15个方法(原创)
- 通过Gson解析Json数据
- Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告
- 原生js--addEventListener和attachEvent的区别
- echarts 地图 免费离线js,json包分享