JavaScript数组知识


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数组操作</title>
<link rel="icon" type="text/css" href="images/favicon.ico">
</head>
<body> </body>
<script>
/*
//instanceof
var arr = [12,23,45,6,89];
console.log(arr instanceof Array);//true //Array.isArray(参数); // 判断参数是不是数组,返回布尔值;
var arr = [1, 2, 3];
var num = 123;
console.log(Array.isArray(arr));//true
console.log(Array.isArray(num));//false // 数组.toString() 把数组变成字符串,去除[] 内容有逗号链接
var arr = ["aaa","bbb","ccc"];
console.log(arr.toString());// aaa,bbb,ccc //数组.valueOf() 返回数组本身
var arr = ["aaa","bbb","ccc"];
console.log(arr.valueOf());// ["aaa", "bbb", "ccc"] //数组.join(参数) 数组中的元素可以按照参数进行连接变成一个字符串
var arr = ["aaa","bbb","ccc"];
//console.log(arr.join("-"));// "aaa-bbb-ccc"
//console.log(arr.join(""));// "aaabbbccc"
//console.log(arr.join(" "));// "aaa bbb ccc" //数组.push() //在数组的最末尾添加元素;
var arr = [1,2,3,4];
var arr1 = arr.push(0);
console.log(arr);//[1, 2, 3, 4, 0]
console.log(arr1);// 5 返回数组的长度 //数组.pop() 不需要参数 在数组的最末尾删除一项
var arr = [1,2,3,4];
var arr2 = arr.pop();
console.log(arr);// [1, 2, 3] 改变原数组
console.log(arr2);// 4 返回值是被删除的一项 //数组.unshift() //在数组的最前面添加一个元素;
var arr = [1,2,3,4];
var arr3 = arr.unshift(9);
console.log(arr);//[9, 1, 2, 3, 4]
console.log(arr3);//5 返回值是数组的长度 //数组.shift() 不需要参数 在数组的最前面删除一项
var arr = [1,2,3,4];
var arr4 = arr.shift();
console.log(arr);//[2, 3, 4] 返回被修改的数组
console.log(arr4);// 1 返回被删除的一项 //数组元素的排序
//reverse() 翻转数组
var arr = [12,56,89,98,68,87];
var arr5 = arr.reverse();
console.log(arr);// [87, 68, 98, 89, 56, 12]
console.log(arr5);// [87, 68, 98, 89, 56, 12] //sort() // 数组中元素排序;(默认:从小到大)
//默认:按照首个字符的Unicode编码排序;如果第一个相同那么就比较第二个...
var arr = [12,35,24,56,42,8,5,68,86];
var arr6 = arr.sort();
console.log(arr);//[12, 24, 35, 42, 5, 56, 68, 8, 86]
console.log(arr6);//[12, 24, 35, 42, 5, 56, 68, 8, 86] //sort() 用回调函数进行升序和降序的排列
var arr = [12,35,24,56,42,8,5,68,86];
arr.sort(function(a,b){
return a-b;//升序排列
});
console.log(arr);//[5, 8, 12, 24, 35, 42, 56, 68, 86] //数组元素的操作
//concat()
var arr = [1,2,3];
var arr8 = ["a","b","c"];
var arr9 = arr.concat(arr8);
console.log(arr);//[1, 2, 3]
console.log(arr8);//["a", "b", "c"]
console.log(arr9); //[1, 2, 3, "a", "b", "c"] //数组.slice(开始索引值,结束索引值);不包括结束索引 //数组截取;
var arr = [1, 2, 3, "a", "b", "c"];
var arr10 = arr.slice(1,4);
console.log(arr);//[1, 2, 3, "a", "b", "c"]
console.log(arr10);//[2, 3, "a"] //数组.splice(开始索引值,删除几个,替换内容1,替换内容2,...);
// 替换和删除; 改变原数组;返回值是被删除/替换的内容
var arr = [1,2,3,4,5,6,'a','b','c','d','e','f'];
//var arr11 = arr.splice(5);//从索引为5开始截取到最后
//console.log(arr);//[1, 2, 3, 4, 5]
//console.log(arr11);//[6, "a", "b", "c", "d", "e", "f"] //var arr12 = arr.splice(2,5);//从索引为2开始截取5个元素
//console.log(arr);//[1, 2, "b", "c", "d", "e", "f"] arr.splice(6,3,"aaa","bbb","ccc");//删除并替换
console.log(arr);// [1, 2, 3, 4, 5, 6, "aaa", "bbb", "ccc", "d", "e", "f"] //数组.indexOf(元素); // 给元素,查索引(从前往后)
// 数组.lastIndexOf(元素); // 给元素,查索引(从后往前)
var arr = ["a","b","c","d","e","f"];
console.log(arr.indexOf("e"));// 4
console.log(arr.lastIndexOf("c"));//2
*/ //数组迭代(遍历)
/*数组.every() 对数组中每一项运行回调函数,如果都返回true,every返回true,如果有一项返回false,
则停止遍历 every返回false;不写默认返回false*/
/*var arr = [1,2,3,4,5];
arr.every(function(ele,index,arr){
console.log(a);//元素
console.log(b);//索引
console.log(c);//数组本身
});*/ /*var arr = [123,234,567,768,987];
//every返回一个bool值,全部是true才是true;有一个是false,结果就是false
var bool = arr.every(function(ele,index,arr){
if(ele>100){
return true;
}else{
return false;
}
});
console.log(bool);*/ /*filter()对数组中每一项运行回调函数,该函数返回结果是true的项组成的新数组
新数组是有老数组中的元素组成的,return为ture的项;*/
/*var arr = [123,123,45,678,54,678];
var arr0 = arr.filter(function(element,index,array){
if(element>100){
return true;
}else{
return false;
}
});
console.log(arr0);//[123, 123, 678, 678]*/ //forEach() 和 for循环一样没有返回值
/*var arr = [1,2,3,4,5,6,7];
arr.forEach(function(element,index,array){
console.log(element);
console.log(index);
console.log(array);
});*/ /*map()对数组中每一项运行回调函数,返回该函数的结果组成的新数组。
return什么新数组中就有什么,不return返回undefined,对数组二次加工。*/
/*var arr = [1,2,3,4,5,6,7,8];
var newArr = arr.map(function(element,index,array){
if(index==2||index==3){
return element;
}else{
return element*2;
}
});
console.log(newArr);// [2, 4, 3, 4, 10, 12, 14, 16]*/ //some()对数组中每一项运行回调函数,如果该函数对某一项返回true,则some返回true; 像杀手,有一个成功,就胜利了!!!
/*var arr = [1,2,4,5,6,7,8,10];
var bool = arr.some(function(ele,index,array){
if(ele%3==0){
return true;
}
return false;
});
console.log(bool);*/ //数组的清空
/*1、arr.length = 0; 伪数组无法清空
* 2、arr.splice(0); 伪数组中没有该方法
* 3、arr = []; 可以操作伪数组(推荐)
* 4、伪数组:就是长的像数组,但是没有数组的方法;也不能添加和删除元素;
*
* */
//清空数组的案例
/*function test(){
//arguments.length = 0;//console.log(arguments);打印Arguments [0: 1, 1: 2, 2: 3, 3: 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]
//arguments.splice(0);//console.log(arguments);//Uncaught TypeError: arguments.splice is not a function
arguments = [];//可以清空 返回空数组
console.log(arguments);
}
test(1,2,3,4);*/ //数组案例
/*
* ["刘备","张飞","关羽"] 1.将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现
* */
//方法一
/*var arr = ["刘备","张飞","关羽"];
var arr1 = arr.join('|');
console.log(arr1);//"刘备|张飞|关羽"*/ //方法二
/* var arr = ["刘备","张飞","关羽"];
var separator = "|";
var str = arr[0];
for(var i = 1;i<arr.length;i++){
str += separator+arr[i];
}
console.log(str);//"刘备|张飞|关羽"*/ //["c", "a", "z", "a", "x", "a"] 输出a所在的索引
/*var arr = ["c", "a", "z", "a", "x", "a"];
arr.forEach(function(element,index,array){
if(element=="a"){
console.log(index);//1,3,5
}
});*/ /*判断特殊情况
false == "" // true
false == [] // true
false == {} // false
"" == 0 // true
"" == [] // true
"" == {} // false
0 == [] // true
0 == {} // false
0 == null // false
null == undefined // true
[]==false // true
[] == ![] // true
*/ /*var a = "0";
console.log(Boolean(a));//true
var b = false;
console.log(Boolean(b));//false console.log(a==b);//true == 比较的是强制类型转换后的值 === 是直接比较
*/ // 数组.toString() 把数组变成字符串,去除[] 内容有逗号链接
//let arr = [1,2,3,4,5,6,7,8,9];
//console.log(arr.toString()); // '1,2,3,4,5,6,7,8,9' //数组.valueOf() 返回数组本身
//let arr = [1,2,3,4,5,6,7,8,9];
//console.log(arr.valueOf());//[1, 2, 3, 4, 5, 6, 7, 8, 9] //数组.join(参数) 数组中的元素可以按照参数进行连接变成一个字符串
// var arr = ["aaa","bbb","ccc"];
// console.log(arr.join("-"));// 'aaa-bbb-ccc'
// console.log(arr.join(""));// 'aaabbbccc'
// console.log(arr.join(" "));// 'aaa bbb ccc'
// console.log(arr.join("~"));// 'aaa~bbb~ccc' //sort() 用回调函数进行升序和降序的排列 箭头函数
//var arr = [12,35,24,56,42,8,5,68,86];
//升序
//arr.sort((a,b) => a-b);
//console.log(arr);//[5, 8, 12, 24, 35, 42, 56, 68, 86] //降序
//arr.sort((a,b) => b-a);
//console.log(arr); </script>
</html>

JavaScript数组知识的更多相关文章

  1. JavaScript数组知识网络

    JavaScript数据类型 基本数据类型 Boolean Null Number String Symbol Undefined 对象数据类型Object Build-in object Array ...

  2. javascript基础知识-数组

    1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配 2.javascript数组是无类型的 3.数组元素不一定要连续 4.针对稀疏数组,length比所有元素的索引都要大 ...

  3. 也谈面试必备问题之 JavaScript 数组去重

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  4. 深入浅出 JavaScript 数组 v0.5

    有一段时间不更新博客了,今天分享给大家的是一篇关于JS数组的,数组其实比较简单,但是用法非常灵活,在工作学习中应该多学,多用,这样才能领会数组的真谛. 以下知识主要参考<JS 精粹>和&l ...

  5. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  6. 七个开法者经常忽略或误用的JavaScript基本知识

    七个开法者经常忽略或误用的JavaScript基本知识 翻译自 http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-ar ...

  7. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

  8. 【转载】JavaScript基础知识体系

    前言 最近总是有一种感觉,对于知识没有积淀,很多时候都是忘记了哪里就去查一下,比如JS这种语言,很是浪费时间,如果能够把这些知识形成知识体系塞进大脑,做到即用即取就好了,那么就可以借助思维导图来帮助我 ...

  9. Javascript数组系列五之增删改和强大的 splice()

    今天是我们介绍数组系列文章的第五篇,也是我们数组系列的最后一篇文章,只是数据系列的结束,所以大家不用担心,我们会持续的更新干货文章. 生命不息,更新不止! 今天我们就不那么多废话了,直接干货开始. 我 ...

随机推荐

  1. 【杂题】[CodeForces 1172E] Nauuo and ODT【LCT】【口胡】

    Description 给出一棵n个节点的树,每个点有一个1~n的颜色 有m次操作,每次操作修改一个点的颜色 需要在每次操作后回答树上\(n^2\)条路径每条路径经过的颜色种类数和. \(n,m< ...

  2. EasyPrtSc sec[1.2] 发布!

    //HOMETAG #include<bits/stdc++.h> namespace EasilyPrtSc{ //this namespace is for you to be mor ...

  3. HGOI 20190821 慈溪一中互测

    Problem A  给出一个$n$个点$m$条边的仙人掌图(每条边最多处于一个简单环中). 使用$c$种颜色对这张图中的顶点染色,使得每一条无向边连接的两个点颜色不同. 求染色的方案数,$mod \ ...

  4. 3105: [cqoi2013]新Nim游戏

    貌似一道经典题 在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴.可以一堆都不拿,但不可以全部拿走.第二回合也一样,第二个游戏者也有这样一次机会.从第三个回合(又轮到第一个游戏者)开始,规则和 ...

  5. Spark译文(二)

    PySpark Usage Guide for Pandas with Apache Arrow(使用Apache Arrow的Pandas PySpark使用指南) Apache Arrow in ...

  6. kafka offset存储

    存储方式 方式 方式来源 存储位置 自动提交 kafka kafka 异步提交 kafka kafka checkpoint spark streaming hdfs hbase存储 程序开发 hba ...

  7. Zookeeper入门(七)之Java连接Zookeeper

    Java操作Zookeeper很简单,但是前提要把包导对. 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一.导入依赖 < ...

  8. C++入门经典-例4.11-名称空间的定义和使用

    1:名称空间,也成为名字空间.命名空间,关键字为namespace.我们经常使用这样一条语句: using namespace std: 我们要使用标准输入输出流,除了包含它们所在的头文件外,还必须使 ...

  9. hibernate一对多关联映射

    一对多关联映射 映射原理 一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端.关联关系都是由多端维护,只是在写映射时发生了变化. 多对一和一对多的区别 多对一和 ...

  10. 降级、熔断、限流[z]

    [z]https://juejin.im/post/5cced96e6fb9a032514bbf94当我们的系统的访问量突然剧增,大量的请求涌入过来,最典型的就是秒杀业务了,我们可能会知道会有一波高峰 ...