数组

//数组
// var array = new Array();
// array[0]="zs";
// array[1]="ls";
var name = "ml"
var array =["zs","ls","mw"];
console.log(array[0]);
console.log(array.length); for (let index = 0; index < array.length; index++) {
const element = array[index];
console.log(element);
}

输入 0-100 的数组

var array=[];
console.log(array.length);
for (let index = 0; index <=100; index++) {
array[index] = index;
}
console.log(array);

数组的 length

数组中的值如果没有赋值,就是 undefined。

//数组输出 0-100 的所有的奇数的数字
//方法一:
var array = [];
var j = 0;
for (let index = 1; index <= 100; index++) {
if (i % 2 !== 0) {
array[j] = i;
j++;
}
}
console.log(array); // 方法二
//每当我们忘数组中新增一个项,都会更改length属性
var array = [];
for (let index = 1; index <= 100; index++) {
if (i % 2 !== 0) {
array[array.length] = i;
}
}

0-100 中能被 3 整除的数,输出出来,一共有多少个。

var array=[];
for (let index = 1; index <= 100; index++) {
if (index %3 ==0) {
array[array.length]=index; }
}
console.log(array);
console.log(array.length); array.length = 1;
console.log(array);

第一次运行的时候 length = 0,也就是第一位是 index。第二次运行的时候,length = 1。

数组:数据的有序列表。可以存放任意类型的数据,数组的大小可以动态调整。

创建数组两种方式:

方式1:数组字面量

var arr1 = [];
var arr2 = [1,2,3];

方式2:Array 的构造函数

var arr3 = new Array(); //创建一个空数组
var arr4 = new Array(10); //创建一个长度为 10 的数组
var arr5 = new Array("a","b","c"); //创建一个包含 3 个字符串的数组

一个数组 ["abc", "aaa", "aaa"]; 输出 abc|aaa|aaa

//abc|aaa|aaa
var array = ["abc", "aaa", "aaa"];
var sperator = "|";
var str = array[0];
for (let index = 1; index < array.length; index++) {
str += sperator + array[i];
}
console.log(str);

当需要合成一个新的数组的时候,可以巧妙的运用array.length 来避免造成数组的 index 未定义,出现 undefined。

一题经典的冒泡排序:

var array = ["13", "43", "53", "1", "41", "65"]
//控制循环次数
var s = 0;
var s1 = 0;
//为什么isSort = true 不能写在外循环
//因为 交换位置 isSort = false。 isSort 的值永远是 false。
//我们要检测的是某一趟是否交换位置
for (var i = 0; i < array.length - 1; i++) {
var isSort = true; //假设排序ok
//控制两两比较的次数
for (var j = 0; j < array.length - 1 - i; j++) {
//两两比较 从小到大
var isSort = false;
// 如果交换位置,说明还没有排序好,如果不交换位置,说明排序好
if (array[j] > array[j + 1]) {
//交换位置
var tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
s++; //记录内循环次数
}
s1++; //记录外循环次数
if (isSort) {
//如果排序好了
break;
}
}
console.log(s);
console.log(s1);
console.log(array);
console.log(array.length);

运用了一个检测是否排序完成的 isSort 来减少比较次数。

javascript_09-数组的更多相关文章

  1. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  4. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  5. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  6. JavaScript常见的五种数组去重的方式

    ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...

  7. js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的

    题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. 掌握javascript中的最基础数据结构-----数组

    这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...

  10. 小兔JS教程(四)-- 彻底攻略JS数组

    在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...

随机推荐

  1. 基于Source Insight_Scan的C/C++静态代码检查工具安装说明

    基于Source Insight_Scan的C/C++静态代码检查工具安装说明   本文链接:https://blog.csdn.net/M19930517/article/details/79977 ...

  2. (NSNumber **)value和(NSNumber * __autoreleasing *)value

    今天在看别人开源项目的时候看到这样的代码: 正文从这里开始~~~ 定义如下: /** 评论详情页基础设置 @param BaseSettingBlock 基础设置 */ - (void)setUpCo ...

  3. web端自动化——自动化测试准备工作

    准备工作# 在开始自己项目的自动化测试之前,我们最好已经完成了下面的准备工作: 1.熟悉待测系统 对项目的待测系统整体功能和业务逻辑有比较清晰的认识. 2.编写系统的自动化测试用例大纲和自动化测试用例 ...

  4. 【GStreamer开发】GStreamer基础教程04——时间管理

    目标 本教程主要讲述一些和时间相关的内容.主要包括: 1. 如何问pipeline查询到流的总时间和当前播放的时间 2. 如何在流内部实现跳转功能 介绍 GstQuery是向一个element或者pa ...

  5. 【JS】实用/常用函数/Function方法

    1.获取日月 时分秒 //获取 月日 getMonth=(time)=>{ var date = new Date(time) <?):(date.getMonth()+) ?'+date ...

  6. idea删除工作记录

    或者

  7. Http 请求到后端过程

    描述下网页一个 Http 请求,到后端的整个请求过程 评注:基础题,感觉属于常识题!必会! 回答: 利用DNS进行域名解析 -------> 发起TCP的3次握手 --------> 建立 ...

  8. PHP如何访问数据库集群

    一般常见的有三种做法, 1,自动判断sql是否为读,来选择数据库的连接: 实例化php DB类的时候,需要一次连接两台服务器,然后根据slq选择不同的连接,举个例子: $link_w = mysql_ ...

  9. LeetCode 589. N叉树的前序遍历(N-ary Tree Preorder Traversal)

    589. N叉树的前序遍历 589. N-ary Tree Preorder Traversal LeetCode589. N-ary Tree Preorder Traversal 题目描述 给定一 ...

  10. QT release版QAudioDeviceInfo获取不到音频设备,而debug版可以获取到

    新添加了两个模块:QCharts和Multimedia 但自己没有重新打包更新里面的库文件什么的... 坑爹... 害我找了这么久... 解决办法: 方法一: 将Qt安装目录下的plugins文件夹中 ...