數(shù)組練習(xí)題

?1.用js實現(xiàn)隨機(jī)選取10~100之間的10個數(shù)字,存入一個數(shù)組,并排序

? ? ? ? //要是獲取不重復(fù)的,則對隨機(jī)數(shù)再進(jìn)行去重。

? ? ? ? function arrRandom() {

? ? ? ? ? ? var arr = [];

? ? ? ? ? ? for (var i = 0; i < 10; i++) {

? ? ? ? ? ? ? ? var num = getRandomNum(10, 100);

? ? ? ? ? ? ? ? arr.push(num);

? ? ? ? ? ? }

? ? ? ? ? ? return arr.sort(function (a, b) {

? ? ? ? ? ? ? ? return a - b;

? ? ? ? ? ? });

? ? ? ? }console.log(arrRandom());

//2.獲取范圍內(nèi)的隨機(jī)數(shù)

function getRandomNum(startNum, endNum) {

? ? if (startNum <= endNum) {

? ? ? ? return parseInt(Math.random() * (endNum - startNum + 1) + startNum);

? ? }

? ? else {

? ? ? ? return parseInt(Math.random() * (startNum - endNum + 1) + endNum);

? ? }

}


2.編寫盡可能簡潔的javascript代碼,找到在第一個數(shù)組array1中出現(xiàn),而在第二個數(shù)組array2中沒有出現(xiàn)的數(shù)字。

indexof()判斷數(shù)字是否出現(xiàn),join()用于把數(shù)組中的所有元素連接成一個字符串,元素是通過指定的分隔符進(jìn)行分隔的。

????????????????//方法1--注意這種方法只能對比數(shù)字。

? ? ? ? ? ? ? ? // 并且有個bug,要是數(shù)組一中第一個元素是1,數(shù)組二中最后一個元素尾數(shù)也是1,則認(rèn)為數(shù)組一中的第一個元素和數(shù)組二中的最后一個元素相同。

? ? ? ? ? ? ? ? function findNullOfArr(arrOne, arrTwo) {

? ? ? ? ? ? ? ? ? ? var str = arrTwo.join("");

? ? ? ? ? ? ? ? ? ? var result = [];

? ? ? ? ? ? ? ? ? ? for (var i = 0; i < arrOne.length; i++) {

? ? ? ? ? ? ? ? ? ? ? ? // 看到這里有個小點(diǎn)就是 indexOf 會做簡單的類型轉(zhuǎn)換,把數(shù)字轉(zhuǎn)換成字符串 '2' 然后再執(zhí)行。

? ? ? ? ? ? ? ? ? ? ? ? if (str.indexOf(arrOne[i]) == -1) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? result.push(arrOne[i]);

? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log(typeof arrOne[i]);

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? return result;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? var arr1 = [1, 22, 3, 44, 5, 6, 7];

? ? ? ? ? ? ? ? var arr2 = [2, 3, 441];

? ? ? ? ? ? ? ? var b = [findNullOfArr(arr1, arr2)];

? ? ? ? ? ? ? ? console.log(b);

// 方法2--找到在第一個數(shù)組array1中出現(xiàn),而在第二個數(shù)組array2中沒有出現(xiàn)的數(shù)字。

? ? ? ? function duplicates(arrOne, arrTwo) {

? ? ? ? ? ? var final = [];

? ? ? ? ? ? var result = [];

? ? ? ? ? ? //數(shù)組一和數(shù)組二中都有的元素放進(jìn)final。

? ? ? ? ? ? for (var i = 0; i < arrOne.length; i++) {

? ? ? ? ? ? ? ? for (var j = 0; j < arrTwo.length; j++) {

? ? ? ? ? ? ? ? ? ? if (arrOne[i] == arrTwo[j] && final.indexOf(arrOne[i]) == -1) {

? ? ? ? ? ? ? ? ? ? ? ? final.push(arrOne[i]);

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? //數(shù)組一和final比較,final沒有的就放進(jìn)去。

? ? ? ? ? ? for (var i = 0; i < arrOne.length; i++) {

? ? ? ? ? ? ? ? if (final.indexOf(arrOne[i]) == -1) {

? ? ? ? ? ? ? ? ? ? result.push(arrOne[i]);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return result;

? ? ? ? }

? ? ? ? var arr1 = [2, 2, 3, 4, 5, 5, 7, "a"];

? ? ? ? var arr2 = [8, 2, 3, 4, 5, 5];

? ? ? ? console.log(duplicates(arr1, arr2));


3.數(shù)組去重。

var arrNum = [1,4,1,1,3,3,4,6,7,8,3,7,0,11,22,22];

????????方法1.遍歷數(shù)組法

最簡單的去重方法,實現(xiàn)思路:新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就加入該新數(shù)組中;注意點(diǎn):判斷值是否在數(shù)組的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多寫一些兼容低版本瀏覽器代碼,源碼如下:

function arrNoRepeat(arr) {

? ? ? ? ? ? var newArr = [];

? ? ? ? ? ? for (var i = 0; i < arr.length; i++) {

? ? ? ? ? ? ? ? if (newArr.indexOf(arr[i]) == -1) {

? ? ? ? ? ? ? ? ? ? newArr.push(arr[i]);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return newArr;

? ? ? ? }

? ? ? ? var arr = [2, 2, 1, 4, 5, 4];

? ? ? ? console.log(deleteRepeat(arr));

????方法2.優(yōu)化遍歷數(shù)組法

????該方法的實現(xiàn)代碼相當(dāng)酷炫,實現(xiàn)思路:獲取沒重復(fù)的最右一值放入新數(shù)組。(檢測到有重復(fù)值時終止當(dāng)前循環(huán)同時進(jìn)入頂????層循環(huán)的下一輪判斷)推薦

// 思路:獲取沒重復(fù)的最右一值放入新數(shù)組

? ? ? ? var arr = [1, 3, 5, 7, 9, 1, 3, 5];

? ? ? ? function unique5(array) {

? ? ? ? ? ? var r = [];

? ? ? ? ? ? for (var i = 0, l = array.length; i < l; i++) {

? ? ? ? ? ? ? ? for (var j = i + 1; j < l; j++)

? ? ? ? ? ? ? ? ? ? if (array[i] === array[j]) j = ++i;

? ? ? ? ? ? ? ? r.push(array[i]);

? ? ? ? ? ? }

? ? ? ? ? ? return r;

? ? ? ? }

? ? ? ? console.log(unique5(arr));


4.現(xiàn)有一個數(shù)組(元素為數(shù)字,并且有可能重復(fù)),請給Array.prototype增加一個方法(方法名自?。摲椒苋サ魯?shù)組中全部最大和最小的數(shù)字。

數(shù)組最大值

Array.prototype.max = function(){? ? return Math.max.apply(null,this);}

數(shù)組最小值

Array.prototype.min = function(){? ? return Math.min.apply(null,this);}


5.給定一個數(shù)組實現(xiàn)字符串反轉(zhuǎn),要求原地實現(xiàn)。

使用循環(huán)數(shù)組的方法:

var arr = new Array();

function myreverse(arr){? ?

?for(var i =0;i < arr.length/2;i ++){? ??

? ? var temp = arr[i];//交換變量? ? ? ?

?arr[i] = arr[arr.length - i - 1];? ? ?

?? arr[arr.length - i - 1] = temp;??

? }}


6.如何準(zhǔn)確判斷一個javascript對象是數(shù)組?

標(biāo)準(zhǔn)方法:

if(object.prototype.toString.call(a) == '[object Array]'){? ? //是數(shù)組對象}

常用方法:

if(a.constructor == Array){? ? //是數(shù)組對象}


7.寫出一個javascript的函數(shù),實現(xiàn)對一個數(shù)組去重的功能。

構(gòu)建一個新的數(shù)組存放結(jié)果。

for循環(huán)中每次從原數(shù)組中取出一個元素,用這個元素循環(huán)與結(jié)果數(shù)組對比。

若結(jié)果數(shù)組中沒有該元素,則存到結(jié)果數(shù)組中。

Array.prototype.unique1 = function(){? ??

var res = [this[0]];? ?

?for(var i =1;i < this.length;i ++){? ? ? ?

?var repeat = false;? ? ? ??

for(var j = 0;j < res.length;j ++){? ?

?? ? ? ? if(this[i] == res[j]){? ? ? ? ?

?? ? ? repeat = true;? ? ? ? ? ?

?? ? break;? ? ? ??

? ? }? ? ? ? }? ? ? ?

?if(!repeat){? ? ? ?

?? ? res.push(this[i]);? ? ??

? }? ? }? ??

return res;}

var b = arr.unique1()

? ? ? ? alert(b);


8.請寫出一個函數(shù),功能是刪除數(shù)組的指定下標(biāo)元素。

array.pop();//刪除最后一個元素,并返回該元素.

array.shift();//刪除第一個元素,數(shù)組元素位置自動前移,返回被刪除的元素

array.splice(start,delCount);//從start的位置開始向后刪除delCount個元素

// 3.請寫出一個函數(shù),功能是刪除數(shù)組的指定下標(biāo)元素。

? ? ? ? function deleteNumArr(arr, index) {

? ? ? ? ? ? if (isNaN(index) || index > arr.length - 1) {

? ? ? ? ? ? ? ? return false;

? ? ? ? ? ? }

? ? ? ? ? ? else {

? ? ? ? ? ? ? ? arr.splice(index, 1);

? ? ? ? ? ? ? ? return arr;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? var arr = [2, 3, 4, 5, 6];

? ? ? ? alert(deleteNumArr(arr, 1));


9.請寫一個函數(shù)removeVoid(arr),刪除該數(shù)組中值為“null,undefined”的項,返回原數(shù)組。

function removeVoid(arr) {

? ? ? ? ? ? for (var i = 0; i < arr.length; i++) {

? ? ? ? ? ? ? ? if (arr[i] == "" || arr[i] == "undefined" || !arr[i]) {//!arr[i])過濾不是數(shù)組的元素,比如null(空值)。

? ? ? ? ? ? ? ? ? ? arr.splice(i, 1);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return arr;

? ? ? ? }

? ? ? ? var arr = [, 1, undefined, 2, null, 5];

? ? ? ? alert(removeVoid(arr));


10.數(shù)組去重,給Array本地對象增加一個原型方法。

? ? Array.prototype.delrepeat = function(){? ? ? ?

?????var arr = this;? ? ??

????? var _arr = new Array();??

? ? ? for(var i in arr){? ? ? ? ?

?? if(i == 'delrepeat') continue;? ? ? ??

? ? if(_arr.length == 0) _arr.push(arr[i]);? ? ? ? ?

?? for(var j = 0;j _arr.length - 2) _arr.push(arr[i]);? ? ??

? ? ? }? ? ? ? ?

?? return _arr;? ? ?

? }


11.用js實現(xiàn)隨機(jī)選取10~100之間的10個數(shù)字,存入一個數(shù)組,并排序。

function getRandom(istart,iend){//列出需要被選中的數(shù)據(jù)? ?

?var a1 = [];? ?

?for(var i = 0;i < 91;i ++){? ? ??

? a1[i] = i + 10;? ? }??

? //挑選出隨機(jī)數(shù)據(jù)? ??

var? a2 = [];? ?

?for(var j = 0;j < 10;j ++){? ?

?? ? a2.push(a1.splice(Math.floor(Math.random()*a1.length),1));

a2.sort();

alert(a2);}

getRandom(10,100);


12.把兩個數(shù)組合并,并刪除第二個元素。

var array1 = ['a','b','c'];

var array2 = ['d','e','f'];

var array3 = array1.concat(array2);

array3.splice(1,1);


13.根據(jù)每個元素的i屬性,由小到大排序如下數(shù)組。

var arr=[{i:5,v:1},{i:2,v:4},{i:3,v:2},{i:1,v:5},{i:4,v:3}];

解析:

arr.sort(function(a,b){? ? return a.i-b.i;? ? })

對于一個數(shù)組,sort()默認(rèn)按字符編碼排序:

var testArray=[3,324,5345,6546,134,5654,665];testArray.sort();alert(testArray);

輸出結(jié)果是:134 3 324 5345 5654 6546 665

現(xiàn)在要讓它按照數(shù)值大小排序:

var testArray=[3,324,5345,6546,134,5654,665];testArray.sort(function(a,b){return a-b;});alert(testArray);

這里傳遞一個比較函數(shù)給sort,比較函數(shù)的邏輯是:如果兩參數(shù)的差值小于0,則表示a必須出現(xiàn)在b前面,否則在b后面。

輸出結(jié)果是:3 134 324 665 5345 5654 6546




1. 讀取學(xué)生的10門課的成績, 然后輸出10門課成績的最高分, 最低分, 總分, 平均分.

?? 提示:把10門課的成績保存如一個數(shù)組中.

<!DOCTYPE html>

<!--題目:讀取學(xué)生的10門課的成績, 然后輸出10門課成績的最高分, 最低分, 總分, 平均分.

? ? 提示:把10門課的成績保存如一個數(shù)組中.-->

varsum =0;

varave =0;

vararr = [90,100,10,20,30,40,50,60,70,80];

console.log(arr);

//排序

arr.sort(function(a, b){

returna - b;

? ? });

//最高分

functionlarge(arr){

returnarr[arr.length -1];

? ? };

//最低分

functionsmall(arr){

returnarr[0];

? ? };

//總分

functiontotal(arr){

for(vareleofarr) {

? ? ? ? ? ? sum += ele;

? ? ? ? }

returnsum;

? ? };

//平均分

functionave(arr){

returnsum / arr.length;

? ? }

//輸出

console.log("總分: "+ total(arr));

console.log("最高分: "+ large(arr));

console.log("最低分: "+ small(arr));

console.log("平均分: "+ ave(arr));

<!--記得再次用原型替換3進(jìn)行調(diào)試-->

用函數(shù)封裝起來:(更具面向?qū)ο蟮乃枷耄?/p>

<!DOCTYPE html>

Title

functionStudent(){

this.scores = [];

this.init =function(){

for(vari =0; i <3; i++){

varscore = +prompt("請輸入學(xué)生的成績:");

this.scores.push(score);

? ? ? ? }

? ? };

this.max =function(){

varscores =this.scores;

varm = scores[0];// ["100", "200", "40"]

for(vari =1; i < scores.length; i++){

if(m < scores[i]){

? ? ? ? ? ? ? ? m = scores[i];

? ? ? ? ? ? }

? ? ? ? }

returnm;

? ? }

this.min =function(){

varscores =this.scores;

varm = scores[0];// ["100", "200", "40"]

for(vari =1; i < scores.length; i++){

if(m > scores[i]){

? ? ? ? ? ? ? ? m = scores[i];

? ? ? ? ? ? }

? ? ? ? }

returnm;

? ? }

this.sum =function(){

vars =0;

for(vareofthis.scores){

? ? ? ? ? ? s += e;

? ? ? ? }

returns;

? ? }

this.avg =function(){

returnthis.sum() /this.scores.length;

? ? }

}

vars1 =newStudent();

s1.init();//初始化學(xué)生的成績

console.log(s1.max());

2.?創(chuàng)建100個隨機(jī)的10到60的隨機(jī)整數(shù), 然后分別統(tǒng)計每個數(shù)字出現(xiàn)的次數(shù)

<!DOCTYPE html>

Title

<!--創(chuàng)建100個隨機(jī)的10到60的隨機(jī)整數(shù), 然后分別統(tǒng)計每個數(shù)字出現(xiàn)的次數(shù)-->

//arr是放隨機(jī)數(shù)產(chǎn)生的數(shù)字,newArr是放重復(fù)元素和重復(fù)個數(shù)的二維數(shù)組

vararr = [];

varnewArr = [];

//js的數(shù)組可以動態(tài)增加,使用數(shù)組字面量創(chuàng)建

for(vari =0; i <100; i++) {

//用random判斷隨機(jī)數(shù)其實不是perfect(正態(tài)分布)

arr[i] =parseInt(Math.random() *50+10);

? ? }

console.log("隨機(jī)數(shù)(正態(tài)分布):\n"+ arr);

//對數(shù)組進(jìn)行排序

arr.sort(function(a, b){

returna - b;//升序

? ? });

console.log("隨機(jī)升序排序:\n"+ arr);

//判斷數(shù)組元素的重復(fù)個數(shù),這樣算法是相對而言比較高效的,省掉了低效的代碼率

for(vari =0; i < arr.length;) {

varcount =0;

for(varj = i; j < arr.length; j++) {

if(arr[i] == arr[j]) {

? ? ? ? ? ? ? ? count++;

}else{

break;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? newArr.push([arr[i], count]);

? ? ? ? i += count;

? ? }

//輸出二維數(shù)組

for(vari =0; i < newArr.length; i++) {

console.log(newArr[i][0] +"重復(fù)次數(shù):"+ newArr[i][1]);

? ? }

在這順便講解一下隨機(jī)數(shù)生成的方法,以后只要涉及到隨機(jī)數(shù),就套路進(jìn)去就行,就跟數(shù)學(xué)公式一樣。(證明略)

如何使用js生成n到m間的隨機(jī)數(shù)字,主要目的是為后期的js生成驗證碼做準(zhǔn)備。

方法1:Math.random()函數(shù)返回0和1之間的偽隨機(jī)數(shù),可能為0,但總是小于1,[0,1)

生成n-m,包含n但不包含m的整數(shù):

Step1:算出 m-n的值,假設(shè)等于w

Step2:Math.random()*w

Step3:Math.random()*w+n

Step4:parseInt(Math.random()*w+n, 10)? 在這里10表示10進(jìn)制,默認(rèn)就是10進(jìn)制。

方法2:生成n-m,不包含n但包含m的整數(shù):?

Step1:算出 m-n的值,假設(shè)等于w

Step2:Math.random()*w

Step3:Math.random()*w+n

Step4:Math.floor(Math.random()*w+n) + 1????

注:Math.floor() 返回小于等于數(shù)字參數(shù)的最大整數(shù),對數(shù)字進(jìn)行下舍入

一般記住這兩種方法就行了。

另解:(在那里要不要加1,看自己的情況,掌握怎么算的):

<!DOCTYPE html>

Title

//? [0, 1)? [0, 51)? [10, 61)? [10, 60]

// m = 10 n= 60

functionrandomInt(m, n){//區(qū)間: [m, n]

returnparseInt(Math.random() * (n - m +1) + m);

}

/*創(chuàng)建一個長度是 count, 元素的值的范圍 是 [m, n]的數(shù)組*/

functioncreateArray(count, m, n){

vararr = [];

for(vari =0; i < count; i++){

? ? ? ? arr.push(randomInt(m, n));

? ? }

returnarr;

}

functiontongji(){

varobj = {};

vararr = createArray(400,10,19);

for(varnum =10; num <=19; num++){

varc =0;

for(vareofarr){

if(e == num){

? ? ? ? ? ? ? ? c++;

? ? ? ? ? ? }

? ? ? ? }

obj[num +""] = c;

? ? }

returnobj;


}

varresult = tongji();

console.log(10+"的個數(shù):"+ result["10"]);

console.log(result["11"]);

console.log(result);

3. 定義一個函數(shù), 判斷數(shù)組中是否所有的數(shù)字都大于0

??? 提示: 傳入一個數(shù)組, 返回布爾值

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <title>Title</title>

</head>

<!--定義一個函數(shù), 判斷數(shù)組中是否所有的數(shù)字都大于0

? ? 提示: 傳入一個數(shù)組, 返回布爾值

-->

<body>

<script>

? ? var arr=[10,20,3,1,3.1,9,1,34,90,0,-100,100];

? ? var flag=true;

? ? for(var i=0;i<arr.length;i++){

? ? ? ? if(arr[i]<0){

? ? ? ? ? ? flag=false;

? ? ? ? ? ? console.log("數(shù)組存在第一個非正值為:"+arr[i]+" 其數(shù)組下標(biāo)為 "+i);

? ? ? ? ? ? break;

? ? ? ? }

? ? }

? ? if(flag){

? ? ? ? console.log("數(shù)組恒正~");

? ? }else{

? ? ? ? console.log("因此,數(shù)組不是恒正的~");

? ? }

</script>

</body>

</html>

4. 封裝函數(shù): 把兩個數(shù)組共同的元素放入一個新的數(shù)組, 并返回新的數(shù)組

??? 提示: 傳入兩個數(shù)組, 返回值為新的數(shù)組

<!DOCTYPE html>

Title

<!--封裝函數(shù): 把兩個數(shù)組共同的元素放入一個新的數(shù)組, 并返回新的數(shù)組

? ? 提示: 傳入兩個數(shù)組, 返回值為新的數(shù)組

-->

vararr1 = [1,2,3,"aaa","hello",999,-1];

vararr2 = [3,78,"aaa","bbb",99,1,-1,"hello"];

varnewArr = [];

//兩層嵌套,效率很低。

functioncommon(arr1, arr2){

for(vari =0; i < arr1.length; i++) {

for(varj =0; j < arr2.length; j++) {

if(arr1[i] === arr2[j]) {

? ? ? ? ? ? ? ? ? ? newArr.push(arr1[i]);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? common(arr1, arr2);

console.log(newArr);

5. 定義一個函數(shù): 可以把數(shù)組中的下標(biāo)為 3 的元素移到數(shù)組的開頭.

??? 提示: 傳入一個數(shù)組

<!DOCTYPE html>

Title

<!--定義一個函數(shù): 可以把數(shù)組中的下標(biāo)為 3 的元素移到數(shù)組的開頭.

? ? 提示: 傳入一個數(shù)組

-->

vararr = [1,2,3,4,5,6,7,8,9,111];

console.log("原數(shù)組: "+ arr);

//函數(shù)alter將下標(biāo)為3的移動到開頭

functionalter(arr){

vartemp = arr[3];

arr.splice(3,1);

arr.splice(0,0, temp);

? ? }

? ? alter(arr);

console.log("移動后數(shù)組: "+ arr);

6. 有一個從大到小排好序的數(shù)組{99,85,82,63,60}。

??? 現(xiàn)從頁面輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

??? 假設(shè)你輸入的80,則應(yīng)該插入到82和63之間。

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <title>Title</title>

</head>

<!--題目:有一個從大到小排好序的數(shù)組{99,85,82,63,60}。

? ? 現(xiàn)從頁面輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

? ? 假設(shè)你輸入的80,則應(yīng)該插入到82和63之間。

-->

<!--

此題方法集錦:

法1:投機(jī)取巧? 直接先把數(shù)字插入到數(shù)組頭部或者尾部,然后一塊排序,很ok吧。

法2:用折半查找二分法,在大樣本數(shù)據(jù)下比較高效,本題解法實則時間復(fù)雜度達(dá)到O(n),而折半O(log2n)

-->

<body>

<script>

? ? //需插入的數(shù)字

? ? var insertNum=16;

? ? //假設(shè)未排序,自己先排序一下

? ? var arr=[88,98,2,5,8,10,25,36];

? ? arr.sort(function (a,b) {

? ? ? ? return b-a;? ? //降序排列

? ? });

? ? console.log("降序排列的數(shù)組為:"+arr);

? ? // 此循環(huán)得到的i值就是排序好的數(shù)組最接近insertNum值得那個最大下標(biāo),雖然效率很差。

? ? for(var i=0;i<arr.length;i++){

? ? ? ? if(arr[i]>=insertNum){

? ? ? ? ? ? var temp=i;

? ? ? ? }

? ? }

? ? //插入到下標(biāo)為temp+1的位置

? ? arr.splice(temp+1,0,insertNum);

? ? //輸出info

? ? console.log("插入數(shù)字"+insertNum+"后的新數(shù)組為: "+arr);

</script>

</body>

</html>

另解:

<script>

/*7. 有一個從大到小排好序的數(shù)組{99,85,82,63,60}。

? ? 現(xiàn)從頁面輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

? ? 假設(shè)你輸入的80,則應(yīng)該插入到82和63之間。*/

functioninsert(arr, num){

for(vari =0; i < arr.length; i++){

if(arr[i] < num){

arr.splice(i,0, num);

return;// 直接結(jié)束函數(shù)

? ? ? ? }

? ? }

? ? arr.push(num);

}

vararr = [99,85,82,63,60];

insert(arr,610);

console.log(arr);

7. 一個數(shù)字中有20個元素,對前10個元素使用升序,后10個元素使用降序。

??? 元素都是整數(shù)。

<!DOCTYPE html>

Title

//數(shù)組元素20個

vararr = [100,12,34,67,23,16,6,9,24,79,2,90,33,69,1,34,-2,0,666,1000];

//切片

vararr1=arr.slice(0,10);

vararr2=arr.slice(10);

//前升序

arr1.sort(function(a,b){

returna-b;

? ? });

//后降序

arr2.sort(function(a,b){

returnb-a;

? ? });

//組合新數(shù)組(cs6)并輸出

varnewArr = [...arr1,...arr2];

console.log("前升序后降序的數(shù)組為: "+ newArr);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容