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 ...
随机推荐
- arduino驱动dbs820温度
https://blog.csdn.net/Naisu_kun/article/details/88420357 超过温度报警 // #include <OneWire.h> //可以不引 ...
- 30-ESP8266 SDK开发基础入门篇--SPI
这节只是做记录, 整个的教程呢,重新整理下 教程有点乱,需要再细分一下 这节只是做一下我使用其SPI的记录 还是老样子,看人家LUA源码里面怎么使用的 注意哈,对于8266 SDK的学习我还是建议大家 ...
- 记录VUE-CLI项目创建及初始化相关
记录 创建项目 vue init webpack 项目名 配置config下的index.js的文件配置,修改相对路径和配置不打包map文件 修改build-webpack.base.conf.js, ...
- Java 并发系列之六:java 并发容器(4个)
1. ConcurrentHashMap 2. ConcurrentLinkedQueue 3. ConcurrentSkipListMap 4. ConcurrentSkipListSet 5. t ...
- atlassian-confluence - docker安装
一下内容在centos 7安装成功.一.安装docker 1.yum安装docker12 yum update # 更新yumyum install docker # yum安装docker 2.开启 ...
- 2018-2019-2 网络对抗技术 20165230 Exp9 :Web安全基础
目录 实验目的 实验内容 Webgoat前期准备 出现的问题 (一)SQL注入攻击 命令注入:Command Injection 数字型注入:Numeric SQL Injection 日志欺骗:Lo ...
- 【医学】三分钟看懂乳腺BI-RADS分级
“BI-RADS”是指美国放射学会的乳腺影像报告和数据系统(Breast Imaging Reporting and Data System)的缩写.BI-RADS分级法将乳腺病变分为0-6级,用来评 ...
- Java编程思想之十 内部类
可以将一个类定义放在另一个类的定义内部,这就是内部类. 10.1 创建内部类 创建内部类就是把类的定义置于外部类里面. public class Parcell { class contents{ i ...
- Java 通过SFTP上传图片功能
1.需要在pom.xml文件中引用jsch的依赖: <dependency> <groupId>com.jcraft</groupId> <artifactI ...
- Beta冲刺(3/7)——2019.5.25
作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Beta冲刺(团队) 团队目标 切实可行的计算机协会维修预约平台 开发工具 Eclipse 团队信息 队员学号 队 ...