JavaScript 数组(二)数组练习
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、
JavaScript 数组(二)数组练习的更多相关文章
- JavaScript 基础(二)数组
字符串, JavaScript 字符串就是用'' 和""括起来的字符表示. 字符字面量, \n 换行, \t 制表, \b 退格, \r 回车, \f 进纸, \\ 斜杠,\' 单 ...
- 同事问如何判断同花顺,我用javascript的二维数组写了个简易demo
有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo. <!DOCTYPE html> <html> <body> <s ...
- javascript数据结构和算法 第二章 (数组) 二
字符串表示的数组 join() 和 toString() 函数返回数组的字符串表示.这两个函数通过将数组中的元素用逗号分隔符切割,返回字符串数组表示. 这里有个样例: var names = [&qu ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- Javascript实现的数组降维——维度不同,怎么谈恋爱
数组的元素可能是数组,这样一层层嵌套,可能得到一个嵌套很深的数组,数组降维要做的事就是把嵌套很深的数组展开,一般最后得到一个一维数组,其中的元素都是非数组元素,比如数组[1, [2, 3, [4, 5 ...
- javascript中关于数组的一些鄙视题
一.判断一个数组中是否有相同的元素 /* * 判断数组中是否有相同的元素的代码 */ // 方案一 function isRepeat1(arrs) { if(arrs.length > 0) ...
- javascript中的数组扩展(一)
javascript中的数组扩展(一) 随着学习的深入,发现需要学习的关于数组的内容也越来越多,后面将会慢慢归纳,有的是对前面的强化,有些则是关于前面的补充. 一.数组的本质 数组是按照次序排 ...
- JavaScript中的数组详解
JavaScript中的数组 一.数组的定义 数组是值的有序集合,或者说数组都是数据的有序列表. 二.创建数组 [字面量形式] 1.空数组 var arr=[]; 2.带有元素的数组 var arr= ...
- 翻阅《数据结构与算法javascript描述》--数组篇
导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性 ...
- javascript 详解数组
概念 数组创建 数组读写 数组 VS. 一般对象 相同点 不同点 稀疏数组 数组的length属性 元素增删 数组迭代 二维数组 数组方法 Array.prototype.join Array.p ...
随机推荐
- woocommerce分类页产品数量修改
我们用woocommerce建商城,不同的模板分类页产品数量不同,如果想要显示更多或更少的数量要如何修改呢?很简单,一行代码就能搞定!打开当前主题的function.php文件,加入如下代码,把18改 ...
- VIJOS-P1152 肥猫的游戏
洛谷 P1488 肥猫的游戏 洛谷传送门 JDOJ 1314: VIJOS-P1152 肥猫的游戏 JDOJ传送门 Description 野猫与胖子,合起来简称肥猫,是一个班的同学,他们也都是数学高 ...
- tomcat启动后,跳转到项目指定页面
- [BZOJ2667][cqoi2012][kcoj]模拟工厂
题目描述 Description 有一个称为“模拟工厂”的游戏是这样的:在时刻0,工厂的生产力等于1.在每个时刻,你可以提高生产力或者生产商品.如果选择提高生产力,在下一个时刻时工厂的生产力加1:如果 ...
- jdbc笔记2
private static String driver; private static String url; private static String username; private sta ...
- django跨域问题解决
在django中,访问非同源网站(协议,域名,端口号)时,会出现: 解决方案: 1.安装 django-cors-headers pip install django-cors-headers 2.修 ...
- 玩NOILinux
添加PPA源 sudo add-apt-repository ppa:... 搜狗输入法 官网安装指南 下载搜狗输入法的安装包 sudo dpkg -i sogou... 安装fcitx(应该已经有了 ...
- [RN] Android 设备adb连接后unauthorized解决方法
Android 设备adb连接后unauthorized解决方法 安卓设备usb或者adbwireless连接后输入adb device后都是未授权状态 相信很多同学都会遇到这种情况,除了一直重复开关 ...
- GLIBC中的库函数fflush究竟做了什么?
目录 目录 1 1. 库函数fflush原型 1 2. FILE结构体 1 3. fflush函数实现 2 4. fclose函数实现 4 附1:强弱函数名 5 附2:属性__visibility__ ...
- 洛谷P1894 [USACO4.2]完美的牛栏The Perfect Stall题解
题目 二分图最大匹配问题 cow数组标现在牛栏里的牛是几号牛 每次寻找都要清空vis数组 如果可行有两种情况 1.这个牛栏里没有牛 2.这个牛栏里的牛可以到别的牛栏去 根据此递归即可 Code: #i ...