js- 数组【创建,属性,索引,常用方法】

/**
 * 数组: 存储一组或一系列数据的容器
 *  - 数组也是一个对象
 *  - 不同的是普通对象使用字符串作为属性名的
 *      而数组使用数字作为索引的
 *  - 数组的存储性能比普通对象好,在开发中经常使用数组存储一些数据
 *  - 数组里可以存储任何数据,包括对象(包括函数,数组)
 * 
 * 创建数组
 *  - 字面量创建方式: []
 *  - 构造函数方式: new Array()
 *  - 区别:字面量创建方式, []中无论放什么都是数组元素。
 *          构造函数方式, ()中如果只有一个正整数,则表示数组长度,每个值为undefined;
 *                          如果只有一个负整数或小数,则报错;
 *                          如果有多个整数或其他类型,则表示数组元素
 *          
 * 数组的属性
 *  - length : 表示数组的长度
 * 
 * 数组的索引
 *  - 下标:可以唯一标识一个数组空间的索引号。
 * 
 * 遍历数组
 *  - for循环
 *  - forEach()
 * 
 * 数组的方法
 *  增、删
 *  - push(元素,...) :将新元素添加到数组的末尾,并返回新的长度。
 *  - pop() :删除数组的最后一个元素,并返回该元素。
 *  - unshift(元素,...) :将新元素添加到数组的开头,并返回新的长度。
 *  - shift() :删除数组的第一个元素,并返回该元素。
 * 
 *  改
 *  - splice(index,howmany,item1,..itemX) 向/从数组添加/删除项目,并返回删除的项目。
 *      - index :(必选)开始位置的索引
 *      - howmany :(可选)删除的数量
 *      - item1,..itemX :(可选)要添加到数组中的新项目。
 * 
 *  截
 *  - slice(start,end) :选择数组的一部分,并返回新数组。
 *      - start :(必选)开始位置的索引,包含开启索引
 *      - end :(可选,默认start之后所有)结束位置的索引,不包含结束索引
 *      - 可以是负数,倒着截取,最后一个数是-1,倒数第二个数是-2
 * 
 *  拼
 *  - concat(array2, array3, ..., arrayX) :连接两个或多个数组,并返回已连接数组的副本。
 *      - 如果新元素是一个数组,则去掉最外层的[],将里面的内容进行拼接
 * 
 *  转
 *  - toString() :返回包含所有数组值的字符串,以逗号分隔
 *      - 数字.toString(2-36) : 将数字转为指定进制的字符串
 *      - 数组.toString() : 将数组转为字符串
 *  - join('连接符') :将数组转为以指定连接符连接成的字符串
 * 
 *  排
 *  - reverse() :逆序排
 *  - sort() :按字母编码排
 *      - sort(function(a,b){return a - b;}) : 按数字从小到大排序
 *      - sort(function(a,b){return b - a;}) : 按数字从大到小排序
 *  
 * 
 *  ES5新增(都不会影响原数组)
 *  - forEach() :按顺序为数组中的每个元素调用一次函数。
 *      - 这个方法支支持IE8以上的浏览器
 *      - 需要一个函数作为参数
 *          - 像这种函数,由我们创建但是不由我们调用的,我们称为回调函数
 *          - 数组中有几个元素函数就会打行几次,每次执行时,浏览器会将遍历到的元素
 *            以实参的形式传递进来,我们可以来定义形参,来读取这些内容
 *          - 浏览器会在回调函数中传递三个参数,
 *              第一个参数,就是当前正在询历的元素
 *              第二个参数,就是当前正在遍历的元素的索引
 *              第三个参数,就是正在遍历的数组
 * 
 *  - indexOf(item, start): 查找元素在数组中第一次出现的下标位置,如果没有,则返回-1
 *      - item :(必需)要搜索的项目
 *      - start :(可选)从哪里开始搜索。负值给定的位置将从结尾计数,然后搜索到最后。
 *  - lastIndexOf(item, start) : 查找元素在数组中从右向左查找第一次出现的下标位置,如果没有找到,返回 -1
 *      - item :(必需)要搜索的项目
 *      - start :(可选)从哪里开始搜索。负值给定的位置将从结尾计数,然后搜索到最后。
 *  - map(function(currentValue, index, arr), thisValue) 
 *      :为每个数组元素调用函数的结果创建新数组
 *  - some(function(currentValue, index, arr), thisValue) 
 *      :检查数组中的任何元素是否通过测试(作为函数提供)
 *      :检测数组中每一个元素,如果有一个元素的条件返回true,则直接退出循环,返回true; 
 *       如果所有元素都返回false时,最终返回false
 *  - every(function(currentValue, index, arr), thisValue)
 *      :检查数组中的所有元素是否都通过了测试(被作为函数提供)
 *      :检测数组中每一个元素,如果有一个元素的条件返回false时,则直接退出循环,返回false。
 *       如果所有元素都返回true时,最终返回true.
 *  - filter(function(currentValue, index, arr), thisValue)
 *      :创建数组,其中填充了所有通过测试的数组元素(作为函数提供)
 *  - reduce(function(currentValue, index, arr), thisValue)
 *      :在每个数组元素上运行函数,以生成(减少它)单个值
 */
var arr1 = [2,5,6,7,8]
var arr = new Array(5,8,9);
//使用 typeof 检查一个数组时返回 object
console.log(typeof arr) //object
arr[0] = 0;
//向数组最后一位添加元素
arr[arr.length] = 10;//0,8,9,10
arr[arr.length] = 20;//0,8,9,10,20

//arr.push(99,98);
var result1 = arr.push(99,98);//0,8,9,10,20,99,98
console.log(result2);//7

//arr.push();
var result2 = arr.push();//0,8,9,10,20,99
console.log(result2);//98

//arr.unshift(100)
var result3 = arr.unshift(100);//100,0,8,9,10,20,99
console.log(result3);//7
arr.forEach(function(value,index,array){
    console.log(value);//100,0,8,9,10,20,99
    console.log(index);//0 1 2 3 4 5 6 7 8
    console.log(array);//[100,0,8,9,10,20,99]
});

//
let text = "";
const fruits = ["apple", "orange", "cherry"];
fruits.forEach(myFunction);

document.getElementById("demo").innerHTML = text;
 
function myFunction(item, index) {
  text += index + ": " + item + "<br>"; 
}

//对于数组中的每个元素:将值更新为原始值的 10 倍:
var numbers = [65, 44, 12, 4];
numbers.forEach(myFunction)

function myFunction(item, index, arr) {
  arr[index] = item * 10;
}

//将数组中元素扩大十倍存储为新数组
const numbers = [65, 44, 12, 4];
const newArr = numbers.map(myFunction);//650,440,120,40

document.getElementById("demo").innerHTML = newArr;

function myFunction(num) {
  return num * 10;
}

//计算数组中被四舍五入的数字的总和。
var numbers = [15.5, 2.3, 1.1, 4.7];

function getSum(total, num) {
  return total + Math.round(num);
}

function myFunction(item) {
  document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值