js 数组操作

2017-09-06  本文已影响0人  赵碧菡
1、移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
//方法1
function remove(arr, item) {
   var newArr=[];
   for(var i=0;i<arr.length;i++){
      if(arr[i]!=item){
          newArr.push(arr[i]);
      }
    }
     return newArr;
}
// 方法2
function remove(arr, item) {
   return arr.filter(function(ele){
       return ele!=item;
   })
}
2、计算给定数组 arr 中所有元素的总和
// 使用ES6中的reduce方法
function sum(arr) {
  return arr.reduce(function(x,y){
      return x+y;
  })
}
3、找出元素 item 在给定数组 arr 中的位置,如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1。
function indexOf(arr, item) {
    return arr.indexOf(item);
}
4、在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组。
function append(arr, item) {
   var newArr=arr.slice(0);
   newArr.push(item);
   return newArr;
}
5、删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
//方法1
function truncate(arr) {
   var newArr=arr.slice(0,arr.length-1);
    return newArr;
}
//方法2
function truncate(arr) {
   var newArr=arr.pop();
    return newArr;
}
6、合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
function concat(arr1, arr2) {
       return  arr1.concat(arr2);
} 
7、在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
function insert(arr, item, index) {
    var newArr=arr.slice(0);
    newArr.splice(index,0,item);
    return newArr
}
8、统计数组 arr 中值等于 item 的元素出现的次数
//方法1
function count(arr, item) {
   var count=0;
    for(var i=0;i<arr.length;i++){
        if(arr[i]==item)  count++;
    }
    return count;
}
//方法2
function count(arr, item) {
   var count=arr.filter(function(ele){
        return ele==item;
    })
    return count.length;
}
9、找出数组 arr 中重复出现过的元素
function duplicates(arr) {
  var result=[];
  arr.forEach(function(ele,index){
      if(arr.indexOf(ele)!=index&& result.indexOf(ele)==-1){
          result.push(ele);
      }
  })
     return result;
}
// 输入:[1, 2, 4, 4, 3, 3, 1, 5, 3]
// 输出:[1, 3, 4]
10、为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
function square(arr) {
  var newArr=arr.map(function(x){
      return x*x;
  })
  return newArr;
}
11、在数组 arr 中,查找值与 item 相等的元素出现的所有位置
//方法1    使用for循环
function findAllOccurrences(arr, target) {
  var find=[];
  for(var i=0;i<arr.length;i++){
       if(arr[i]== target){
         find.push(i);
       }
   }
    return find;
}
//方法2  使用filter
 function findAllOccurrences(arr, target) {
   var find=[];
   arr.filter(function(ele,index){
        return ele==target&&find.push(index);
    })
   return find;
}

上一篇 下一篇

猜你喜欢

热点阅读