Array对象方法(五)entries/fill/every/filter

116 阅读1分钟

javaScript Array数组对象entries/fill/every/filter

entries:将数组转换成迭代器

let arr = ['name', 55, true];
const it = arr.entries();
console.log(it);//Array Iterator
console.log(it.next());
/**结果
{
  "value": [ 0, "name"],
  "done": false
}
*/
console.log(it.next());
/**结果
{
  "value": [ 1, 55 ],
  "done": false
}
*/

fill填充/修改数组内部值:会改变传入的数组

let arr = new Array(10).fill(6);
console.log(arr); // [ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 ]

let arr1 = [1, 2, 3, 4, 5];
arr1.fill(0, 1, 3);
console.log(arr1); // [ 1, 0, 0, 4, 5 ]

every传入一个函数,判断数组中所以的值是否都满足对应的条件

let arr = [6, 5, 3, 4, 8, 4, 6];
let result = arr.every(value => {
  return value > 5;
});
console.log(result); // false
result = arr.every(value => {
  return value < 10;
});
console.log(result); // true

let objArr = [
  { name: 'zg', age: 18 },
  { name: 'kobe', age: 19 },
  { name: 'lucy', age: 25 },
  { name: 'jam', age: 33 },
];
result = objArr.every(item => {
  return item.age > 10;
});
console.log(result); // true
result = objArr.every(item => {
  return item.age < 26;
});
console.log(result); // false

filter传入一个函数,判断数组中是否满足对应的条件,满足则会返回该值,不满足就会被过滤掉

let arr = [6, 5, 3, 4, 8, 4, 6];
let result = arr.filter(value => {
  return value > 5;
});
console.log(result); // [ 6, 8, 6 ]
result = arr.filter(value => {
  return value < 10;
});
console.log(result); // [ 6, 5, 3, 4, 8, 4, 6 ]

let objArr = [
  { name: 'zg', age: 18 },
  { name: 'kobe', age: 19 },
  { name: 'lucy', age: 25 },
  { name: 'jam', age: 33 },
];
result = objArr.filter(item => {
  return item.age > 20;
});
console.log(result);
/**结果
[
  { "name": "lucy", "age": 25 },
  { "name": "jam", "age": 33 }
]
*/
result = objArr.filter(item => {
  return item.age < 26;
});
console.log(result);
/**结果
[
  { "name": "zg", "age": 18 },
  { "name": "kobe", "age": 19 },
  { "name": "lucy", "age": 25 }
]
*/