您的位置:首页 > Web前端 > JavaScript

js基础--数组

2017-03-04 09:28 330 查看
定义:

定义1(字面量定义):

var arr=[1,2,3];

定义2(对象定义);

var arr=new Array();

var arr=new Array(1,2,3);

注意:

var arr=new Array(3);//代表定义一个数组,长度为3,每个值都为undefined

数组的操作:1获取数组的值通过索引值获取。

                        2通过索引值给数组赋值。

数组的遍历:使用for(var i=0;i<arr.length;i++)

eg:

冒泡法:

// 冒泡排序,从小到大,假设数组长度为5
// 第一次比较4次
// 第二次比较3次
// 第三次比较2次
// 第四次比较1次
function sort(arr)
{
var temp;
var flag=true;//若某次排序没有交换,说明已经是正确顺序,无需再排序
for(var i=0;i<arr.length-1;i++)//总共进行length-1次排序
{
for(var j=0;j<arr.length-1-i;j++)//每次进行length-1-i次
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=false;
}
}

if(flag !==false)
{
break;
}

}
return arr;
}
var arr=[10,50,10,20,54,23];
console.log(sort(arr));

练习题:

// 求2个数中的最大值
function max(a,b){
if(a>=b){return a;}
else {return b;}
}
alert(max(7,3))

// 求3个数中的最大值
function max(a,b,c){
var max=a>b?a:b;
max=max>c?max:c;
return max;
}
alert(max(1,2,0.5));

// 求一组数中的最大值
function max(arr)
{
var max=arr[0];
for(var i=0;i<arr.length;i++)
{
if(max<arr[i])
{
max=arr[i];
}
}
return max;
}
var arr=[2,3,1,5,6,89,0.4];
console.log(max(arr));

// 求一组数中的最小值
function min(arr)
{
var min=arr[0];
for(var i=0;i<arr.length;i++)
{
if(min>arr[i])
{
min=arr[i];
}
}
return min;
}
var arr=[2,3,1,5,6,89,0.4];
console.log(min(arr));

// 翻转数组,返回一个新数组
// 方式一:定义新数组
function reversal(arr){
var newArr=[];
for(var i=0;i<arr.length;i++)
{
newArr[i]=arr[arr.length-1-i];
}
return newArr;
}
var arr=[2,3,1,5,6,89,0.4];
console.log(reversal(arr));

// 方式二:利用原数组
function reversal(arr){
var temp;
for(var i=0;i<parseInt(arr.length/2);i++)
{ var j=arr.length-1-i;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
return arr;
}
var arr=[2,3,1,5,6,89,0.4];
console.log(reversal(arr));

// 对数组排序,从小到大
function sort(arr){
var temp;
var flag=true;
for(var i=0;i<arr.length;i++)
{
for(var j=0;j<arr.length-i;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=false;
}
}
if(flag)
{break;}
}
return arr;
}
var arr=[2,3,1,5,6,89,0.4];
console.log(sort(arr));

// 求阶乘
function factorial(num){
var sum=1;
for(var i=1;i<=num;i++)
{sum*=i;}
return sum;
}
alert(factorial(4));

// 求1!+2!+3!+....+n!
function factorialSum(num)
{
var sum=0;
var j=1;
for(var i=1;i<=num;i++)
{
j*=i;
sum+=j;
}
return sum;
}
alert(factorialSum(4));

// 判断一个数是否是素数
function isPrime(num)
{
for(var i=2;i<Math.sqrt(num);i++)
{
if(num%i===0)
{return false;}

}
return true;
}
alert(isPrime(7));

// 求斐波那契数列Fibonacci中的第n个数是多少?
// 1 1 2 3 5 8 13 21...
function Fibonacci(num){
var next=1;
var current=0;
pre=0;
for(var i=1;i<num;i++){
current=pre+next;
pre=next;
next=current;
}
return current;
}
alert(Fibonacci(8));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: