数组类总结

标签: js数组
8人阅读 评论(0) 收藏 举报

下面是数组中常用的一些方法:

1.数组随机取值:
var arr = [3,5,7,89,436,789,980];
arr[Math.floor(Math.random()*arr.length)];

2.数组打乱顺序:
方法一,数组的sort方法(该方法不完全打乱):
function randomsort(a, b) {
    return Math.random()>.5 ? -1 : 1;
    //用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1
}
方法二:
function shuffle(array) {
    var iLength = array.length,
    i = iLength,
    nTemp,
    iRandom;
    while ( i-- ) {
      if (i !== (iRandom = Math.floor(Math.random()*iLength))) { // 不是同一个数组项的前提下进行互换
        nTemp = array[i];
        array[i] = array[iRandom];
        array[iRandom] = nTemp;
      };
    };
    return array;
}
console.log(shuffle([1,2,3,4,5,6,7,8]));
ES6的写法:
Array.prototype.shuffle = function() {
let m = this.length, i;
while (m) {
i = (Math.random() * m--) >>> 0;
[this[m], this[i]] = [this[i], this[m]];
}
return this;
}

[1, 2, 3, 4, 5, 6, 7].shuffle();


3.数组排序:
升序:
function asc(a,b) {
return a < b ? -1 : 1;//如果a小于b不交换,否则交换,即升序排列
}
var arr = [4,56,789,2,5898,78,90];

arr.sort(asc);//[2, 4, 56, 78, 90, 789, 5898]

降序:
function desc(a,b) {
return a > b ? -1 : 1;;//如果a大于b不交换,否则交换,即将序排列
}
var arr = [4,56,789,2,5898,78,90];

arr.sort(desc);//[5898, 789, 90, 78, 56, 4, 2]

将奇数排在前面,偶数排在后面:
var arr = [6,2,4,3,5,1];
arr.sort( function(x, y) {
if (x % 2 ==0) return 1;
if (x % 2 !=0) return -1;
});
console.log(arr);//[3, 5, 1, 4, 2, 6]

4.数组去重:
方法一:
function unique(arr){
var obj = {},
tmp = [];
for(var i = 0 ;i< arr.length;i++){
   if( !obj[arr[i]] ){
      obj[arr[i]] = 1;
      tmp.push(arr[i]);
   }
}
return tmp;
}

console.log(unique([2,3,4,4,5,2,3,6]));//[2, 3, 4, 5, 6]

方法二:
function unique(arr){
var tmp = [];
for(var i = 0;i< arr.length;i++){
    if(tmp.indexOf(arr[i]) < 0){
        tmp.push(arr[i]);
    }
}
return tmp;
}
console.log(unique([2,3,4,4,5,2,3,6]));//[2, 3, 4, 5, 6]
查看评论

数组

本门课程是java基础课程之一,介绍数组的概念和使用。
  • 2017年01月30日 17:30

Leetcode数组类题目

Move Zeroes:Easy。双指针。 Contains Duplicate:Easy。hashtable。 Majority Element:Easy。但是对答案的扩展不明白。 Remove E...
  • sjt091110317
  • sjt091110317
  • 2016-03-27 19:01:18
  • 465

对有数组属性的类的总结

mport java.util.*; public class Students{         static int[] stu=new int[10];               ...
  • qq_36542024
  • qq_36542024
  • 2016-11-17 21:15:28
  • 121

java数组的总结

java数组定义的方法,java数组的简单使用,java数组相关类和方法的介绍,java数组编程题目的讲解...
  • wenzhi20102321
  • wenzhi20102321
  • 2016-08-22 16:03:38
  • 1231

Java 数组的总结

Java数组 一.   概述 1.      定义: 数组是一种数据结构,用来存储同一类型值的集合。 2.      数组是存在下标索引的,通过下标可以获取指定位置的元素,数组小标是从0开始的,也就...
  • hua631150873
  • hua631150873
  • 2013-09-14 21:39:31
  • 2137

leetcode数组或者字符串常用方法总结

1.暴力法 Given a string containing only digits, restore it by returning all possible valid IP address...
  • xuehuagongzi000
  • xuehuagongzi000
  • 2017-04-19 23:38:51
  • 346

MFC的数组类CArray使用详解-赞

  • 2013年07月19日 17:11
  • 19KB
  • 下载

数组知识点的总结

数组   数组的创建:(1)静态数组的创建           要注意:①数组的创建分两步,第一步是定义一个数组类型的变量;第二步是初始 化数组。              例:int[] ar...
  • jiuytgjgtg
  • jiuytgjgtg
  • 2016-11-07 21:18:34
  • 251

【C++总结】数组

数组的初始化数组定义的时候就要确定大小 int arr1[10];//定义一个10个元素的数组 int arr2[10] = {1, 2, 3, 4}; int arr22[20]{1,2,3,4...
  • ttf1993
  • ttf1993
  • 2015-05-22 11:18:37
  • 441

数组的总结

数组只能存放同一种数据类型的数据     数组每一个元素都有一个索引号,索引号从0开始     元素个数总共占用的字节/每个元素占用的字节     int length=sizeof...
  • u014646952
  • u014646952
  • 2014-04-11 13:12:16
  • 369
    个人资料
    等级:
    访问量: 0
    积分: 80
    排名: 0
    文章分类
    文章存档