美文网首页
数组新API

数组新API

作者: 天外来人 | 来源:发表于2017-01-06 11:37 被阅读14次

IndexOf

indexOf() 方法返回在该数组中第一个找到元素位置,如果它不存在则返回-1;
不用indexOf() 时

var arr = ['apple', 'orange', 'pear'];
var index = 0;
for(var i = 0; i < arr.length; i++){
  if(arr[i] == 'orange'){
    index = i;
  }
}
console.log(index);

使用后

var arr = ['apple', 'orange', 'pear'];
console.log(arr.indexOf('orange'));

lastindexOf()

lastIndexOf() 方法返回在该数组中最后一个找到的元素位置,和indexof相反。

every()

every()可是检查数组中的每一项是否符合条件
使用for:

var ary = [12, 23, 24, 42, 1];
var result = function() {
  for(var i = 0; i < ary.length; i++){
    if(ary[i < 0]){
      return false;
    }
  }
  return true;
}
console.log(result()); //全部满足,返回true

使用every:

var ary = [12,23,24,42,1];
var result = ary.every(function(item, index){
  return item > 0
})
console.log(result);

some()

some()可以检查数组中是否有某一项符合条件
使用for:

var ary = [12,23,-24,42,1];
var result = function() {
  for(var i = 0; i < arr.length; i++){
    if(arr[i] < 0){
      return true
    }
  }
  return false;
}
console.log(result());  //有一项小于0,返回true

使用some:

var ary = [12,23,-24,1];
var result = ary.some(function(item, index){
  return itme < 0;
})
console.log(result);

filter

filter() 方法创建一个新的匹配过滤条件的数组
不用filter() 时

var arr = [1,2,3,4,5,6,7,8,9]
var newArr = [];

for(var i = 0; i < arr.length; i++){
  if(arr[i] % 2){
    newArr.push(arr[i]);
  }
}
console.log(newArr);

使用filter()后

var arr = [1,2,3,4,5,6,7,8,9];
var newArr = arr.filter(function(item){
   return item % 2
});
console.log(newArr);

map

map() 对数组的每个元素进行一定操作后,返回一个新的数组
不用map()时

var oldArr = [{first_name: 'shuai'},{first_name:'dan'}];
var newArr;
for(var i = 0; i < oldArr.length; i++){
  var item = oldArr[i];
  item.last_name = 'zhang';
  newArr[i] = item;
}
console.log(newArr());

使用map()时

var oldArr = [{first_name: 'shuai'},{first_name:'dan'}];
var newArr = oldArr.map(function(item, index){
  item.last_name ='zhang';
  return item;
});
console.log(newArr);

reduce

reduce()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值。
例如:统计一个数字中有多少个不重复的单词。
不使用reduce时

var arr = ['apple','orange','apple'];
var obj = {};
for(var i = 0; i < arr.length; i++){
  var item = arr[i];
  obj[item] = (obj[item] + 1) || 1;
}
console.log(obj);

使用reduce()后

var arr = ['apple', 'orange', 'apple'];
var obj = arr.reduce(function(prev, next){
   prev[next] = (prev[next] + 1) || 1;
   return prev;
}, {});
console.log(obj);

reduce(callback, initialValue)会传入两个变量。回调函数(callback)和初始值(initialValue)。假设函数它有个传入参数,prev和next,index和array。prev和next你是必须要了解的。
一般来讲prev是从数组中第一个元素开始的,next是第二个元素。但是当你传入初始值(initialValue)后,第一个prev将是initivalValue,next将是数组中的第一个元素。

相关文章

  • 数组新API

    IndexOf indexOf() 方法返回在该数组中第一个找到元素位置,如果它不存在则返回-1;不用indexO...

  • [ES6] 增强的数组功能

    新增的数组 API 静态方法 Array.of(...args): 使用指定的数组项创建一个新数组 在 new A...

  • js splice,slice,split区别

    splice(拼接),从中文意思不难看出,该api会改变原始数组。如下所示,splice 改变原数组,返回新数组 ...

  • 百度糯米面试

    1.操作数组的API、什么操作会返回一个新的数组、遍历数组的方法、each()和forEach()的区别 2.事件...

  • 前端面试必问之数组去重

    基于数组API实现去重 创建一个空数组空间来比较循环数组中的每一项添加到空数组中,每次添加的时候验证一下,新数组中...

  • JS数组方法

    1.数组的Api 2.ES5数组的Api 数组方法的 filter 、map、every、some 对比试验 3....

  • ios开发 数组模型排序的集中方法

    数组排序的API分为2中,一种是数组直接调用API排序,另一种根据NSSortDescriptor来排序 //数组...

  • 数组API

    数据API: 1.string();把数组转换成字符串 代码如下 2.join('拼接符');拼接,最后拼接成的是...

  • 数组API:

    1.String(); 吧数组穿换成字符串 案例: 2.join('拼接符'); 拼接成字符串,如果没有拼接符,默...

  • 数组API

    数组API 1.String();把数组转化为字符串 var a=[1,2,3,4,5]; ...

网友评论

      本文标题:数组新API

      本文链接:https://www.haomeiwen.com/subject/kybtbttx.html