数组方法
forEach()方法:遍历数组
语法
arr.forEach(function(value, index, array) {})
value:数组当前项的值
index:数组当前的索引
array:数组对象本身
var arr = [1, 2, 3];
arr.forEach(function(value, index, array) {
console.log('每个数组元素' + value);
console.log('每个数组元素索引号' + index);
console.log('数组本身' + array);
})
输出
每个数组元素1
每个数组元素索引号0
数组本身1,2,3
每个数组元素2
每个数组元素索引号1
数组本身1,2,3
每个数组元素3
每个数组元素索引号2
数组本身1,2,3
示例
var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function(value, index, array) {
sum += value;
})
console.log(sum);//6
filter()方法:筛选数组
arr.filter(function(value, index, array) {})
注意:返回一个新数组
value:数组当前项的值
index:数组当前的索引
array:数组对象本身
示例1
var arr = [12, 66, 4, 88];
var newArr = arr.filter(function(value, index) {
return value >= 20;
});
console.log(newArr);
输出
[66, 88]
示例2
var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index) {
return value % 2 == 0;
});
console.log(newArr);
输出
[12, 66, 4, 88]
some()方法:查找数组中是否满足条件的元素
arr.some(function(value, index, array) {})
注意:
1.它返回值是布尔值,如果能查找到这个元素,就返回true,如果查找不到这个元素,就返回false
2.如果找到第一个满足条件的元素,则终止循环,不在继续查找
value:数组当前项的值
index:数组当前的索引
array:数组对象本身
var arr = [10, 30, 4];
var flag = arr.some(function(value) {
return value >= 20;
})
console.log(flag);//true
filter()方法与some()方法区别
1.filter也是查找满足条件的元素,返回是一个数组,而且是把所有满足条件的元素返回回来
2.some是查找满足条件的元素是否存在,返回的是一个布尔值,如果找到第一个满足条件的元素,则终止循环
forEach()方法、some()方法、filter()方法之间的区别
1.在forEach里面return不会终止遍历
2.在some里面遇到return true(return true说明已找到,终止遍历return false说明没找到,继续去找)会终止遍历 遍历效率更高
3.在filter里面return不会终止遍历
总结:如果查询数组中唯一的元素,用some方法更合适
数组的map方法
1、map() 方法返回一个新数组,新数组中的元素为原始数组中的每个元素调用函数处理后得到的值。
2、map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组 。
**注意:**函数的作用是对数组中的每一个元素进行处理,返回新的元素。
3.语法
map是数组的方法,有一个参数,参数是一个函数,函数中有3个参数
参数1:item必须。当前元素的值
参数2:index,可选。当前元素在数组中的索引值
参数3:arr可选。当前元素属于的数组对象
array.map(function(item,index,arr){})
var arr=[1,2,3,4,5];
var arr2=arr.map(function a(item,i,arr){
item*=2;
return item;
});
console.log(arr2);//[2, 4, 6, 8, 10]
数组的every()方法
语法:
array.every(function(item,index,array){})
// item:当前元素的值;
// index:当前元素的索引;
// array:当前元素的数组对象;
// 数组中所用的值都大于10
var ages = [32, 33, 12, 40];
var age = ages.every(function (val, ind) {
return val > 10;
})
console.log(age) // true
字符串方法
trim()方法:从一个字符串的两端删除空白字符,不会去掉中间的空格
语法
str.trim()
trim()方法并不影响原字符本身,返回的是一个新的字符串
var str = ' andy ';
var str1 = str.trim();
console.log(str1);
对象方法
1.Object.keys()用于获取对象自身所有的属性名
Object.keys(obj)
1.效果类似for…in
2.返回一个由属性名组成的数组
var obj = {
id: 1,
pname: '小米',
price: 1999,
num: 2000
};
var arr = Object.keys(obj);
console.log(arr);
输出
["id", "pname", "price", "num"]
示例
var obj = {
id: 1,
pname: '小米',
price: 1999,
num: 2000
};
var arr = Object.keys(obj);
arr.forEach(function(value) {
console.log(value);
})
输出
id
pname
price
num
2.Object.defineProperty()定义对象中新属性或修改原有的属性
语法
Object.defineProperty(obj, prop, decriptor)
obj:必需。目标对象
prop:必需。需定义或者修改的属性的名字
decriptor:必需。目标属性所拥有的特性
Object.defineProperty()第三个参数decriptor说明:以对象形式{}书写
1.value:设置属性的值,默认是undefined
2.writable:值是否重写。true|false 默认是false
3.enumerable:目标对象是否可以枚举。true|false 默认是false
4.configurable:目标属性是否可以被删除或是否可以再次修改特性 true|false 默认是false
var obj = {
id: 1,
pname: '小米',
price: 1999,
num: 2000
};
Object.defineProperty(obj, 'num', {
value: 1000
})
console.log(obj); //{id: 1, pname: "小米", price: 1999, num: 1000}
Object.defineProperty(obj, 'price', {
value: 9.9
})
console.log(obj); //{id: 1, pname: "小米", price: 9.9, num: 1000}
Object.defineProperty(obj, 'id', {
//如果值为false,则不允许修改这个属性值,默认是false
writable: false, //1
})
obj.id = 2;
console.log(obj);
Object.defineProperty(obj, 'address', {
value: '中国山东南翔技工学校',
//如果值为false,则不允许遍历,默认是false
enumerable: false,
//如果为false这个属性不可以可以被删除
configurable: false
})
console.log(obj); //{id: 1, pname: "小米", price: 9.9, num: 1000, address: "中国山东南翔技工学校"}
console.log(Object.keys(obj)); //["id", "pname", "price", "num"]
delete obj.address;
console.log(obj); //{id: 1, pname: "小米", price: 9.9, num: 1000, address: "中国山东南翔技工学校"}
来源:CSDN
作者:qq_42802170
链接:https://blog.csdn.net/qq_42802170/article/details/103810375