一、数组对象——方法
1、删除与添加
删除与添加
arrObj.splice(参数1,参数2,参数3) 从参数1的位置开始删除参数2个元素,并在参数1位置添加参数3里的元素
参数1:必需 开始删除/添加元素的位置
参数2:必需 删除元素的个数
参数3:可选 添加的元素,多个元素之间用逗号隔开
返回值:删除元素构成的数组
var arr = [10, 7, "hello", 8, true];
console.log(arr.splice(2, 2));
console.log(arr.splice(-2, 2));
console.log(arr.splice(-2, 2, "world", "abc", 100));
console.log(arr.splice(2, 2, "world", "abc", 100));
console.log(arr);
2、拷贝
拷贝
arrObj.copyWithin(参数1,参数2,参数3) 用于从数组的指定位置拷贝元素到数组的另一个指定位置中
参数1:必需 复制到指定目标的索引位置
参数2:可选 开始复制的位置
参数3:可选 结束复制的位置
返回值:数组
var arr = [1, 8, "hello", 4, false, 10];
console.log(arr.copyWithin(1, 4));
console.log(arr.copyWithin(1, 4, 5));
3、检测
检测是否满足条件
arrObj.every(function(item,i){}); 用于检测数组所有元素是否都符号指定条件(通过函数提供)
如果所有元素都满足条件,则返回true
如果数组中检测到有一个元素不满足表达式返回false且剩余的元素不会检测
返回值:布尔值
arrObj.some(function(item,i){}); 用于检测数组所有元素是否都符号指定条件(通过函数提供)
如果有一个元素满足条件,则返回true且剩余的元素不会检测
如果数组中所有元素都不满足表达式返回false返回值:布尔值
arrObj.find(function(item,i){return 条件;});
返回第一个满足条件的元素,如果无满足条件的元素,返回undefined
arrObj.findIndex(function(item,i){return 条件;});
返回第一个满足条件元素的位置(索引),如果无满足条件的元素,返回-1
var arr = [1, 7, 3, 9, 11];
var a = arr.every(function (item, i) {
return item % 2 === 0;
});
var a = arr.some(function (item) {
return item % 2 === 0;
});
var a = arr.find(function (item) {
return item % 3 === 0;
});
var a = arr.findIndex(function (item, i) {
return item % 2 === 0;
});
console.log(a);
4、判断是否是数组
Array.isArray(参数)判断参数是否是数组 如果是数组则返回true 否返回false
Array.from(参数1,参数2)通过拥有length属性的对象或可迭代的对象来返回一个数组
参数1:必需 要转换为数组的对象
参数2:可选 数组中的每个元素调用的函数
返回值:数组
var lis = document.getElementsByTagName("li");
var arr = Array.from(lis);
console.log(Array.isArray(arr));
5、数组去重函数封装
function noRepeat(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (newArr.indexOf(item) === -1) {
newArr.push(item);
} }
return newArr;}
//简写
function noRepeat(arr) {
return arr.filter((item, i) => arr.indexOf(item) === i);
}
6、冒泡排序
1.冒泡排序函数封装
function bubbleSort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
} } }
return arr; }
冒泡排序算法的原理如下: 升序
1 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3 针对所有的元素重复以上的步骤,除了最后一个。
4 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
二、数组对象——自定义对象
1、创建
创建
构造函数
var obj=new Object();
obj.属性名=属性值;
obj["属性名"]=属性值
obj.方法名=function(){}
字面量方式
var obj={};对象
var obj={
属性名:属性值,
方法名:function(){}
}
var gf = new Object();
gf["gender"] = "女性";
gf.age = 18;
gf.speak = function () {
"我叫" + this.name + ",我今年" + this["age"] + "岁了";
};
var obj = {
age: 18,
height: 170,
speak: function () {},
};
2、访问属性
访问属性
obj.属性名
obj[“属性名”]
for(var i in obj){
i 属性名(键名)
obj[i] 属性值 (键值)
}
var arr = [10,7,3];
var obj = {
age: 18,
height: 170,
};
console.log(arr[0]);
console.log(obj.age);
for (var i in arr) {
console.log(arr[i]);
}
3、JSON
json (JavaScript Object Notation)javascript的对象表示法
字符串转换为json数据 反序列化
JSON.parse(str)
把json数据转换为字符串 序列化
JSON.stringify(obj)
var arr = JSON.parse(str);//json数据(js对象)
var s = JSON.stringify(arr);//返回值 字符串