some

用法: 如果数组操作中有一个符合条件返回true,否则返回false空数组返回false 语法:arr.some(callback(element[, index[, array]])[, thisArg]) 参数: callback:用来测试每个元素的函数,接受三个参数: element:数组中当前正在处理的元素。 index可选:正在处理的元素在数组中的索引。 array可选:调用了 filter 的数组本身。 thisArg可选:执行 callback 时,用于 this 的值。 返回值: 数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。

  1. let myTest = [1,2,3,4];
  2. console.log('-----some------');
  3. const result = myTest.some((item,index,arr)=>{
  4. console.log(item,index,arr);
  5. return item%2 ===0;
  6. })
  7. console.log(result);
  8. Array.prototype.mySome = function(fun,thisArg){
  9. if(typeof fun !=='function'){
  10. throw new Error(fun + '不是一个函数')
  11. }
  12. if ([null, undefined].includes(this)) {
  13. throw new Error(`this null 或者 undefined`)
  14. }
  15. for (let i = 0; i < this.length; i++) {
  16. const res = fun.call(thisArg,this[i],i,this);
  17. if(res){
  18. return true
  19. }
  20. }
  21. return false;
  22. }
  23. console.log('-----mySome------');
  24. let myResult = myTest.mySome((item,index,arr)=>{
  25. console.log(item,index,arr);
  26. return item%2===0;
  27. });
  28. console.log(myResult);

image.png

every

用法: 如果数组操作都符合条件返回true,否则返回false空数组返回true 语法:arr.every(callback(element[, index[, array]])[, thisArg]) 参数: callback:用来测试每个元素的函数,接受三个参数: element:数组中当前正在处理的元素。 index可选:正在处理的元素在数组中的索引。 array可选:调用了 filter 的数组本身。 thisArg可选:执行 callback 时,用于 this 的值。 返回值: 如果回调函数的每一次返回都为 truthy 值,返回 true ,否则返回 false

  1. let myTest =[1, 30, 39, 29, 10, 13];
  2. console.log('-----every------');
  3. const result = myTest.every((item,index,arr)=>{
  4. console.log(item,index,arr);
  5. return item<40;
  6. })
  7. console.log(result);
  8. Array.prototype.myEvery = function(fun,thisArg){
  9. if(typeof fun !=='function'){
  10. throw new Error(fun + '不是一个函数')
  11. }
  12. if ([null, undefined].includes(this)) {
  13. throw new Error(`this null 或者 undefined`)
  14. }
  15. for (let i = 0; i < this.length; i++) {
  16. const res = fun.call(thisArg,this[i],i,this);
  17. if(!res){
  18. return false
  19. }
  20. }
  21. return true;
  22. }
  23. console.log('-----myEvery------');
  24. let myResult = myTest.myEvery((item,index,arr)=>{
  25. console.log(item,index,arr);
  26. return item<40;
  27. });
  28. console.log(myResult);

image.png