JavaScript 數組運用實現代碼

來源:互聯網
上載者:User

截取數組:slice(startIndex,endIndex):

返回數組中指定開始位置倒結束位置的數組。不改變原數組內容。

另外還有一個重要的方法,插入、刪除或替換數組元素方法:
splice(startIndex,howmany,element1~elementX):會修改原數組內容。參數含義分別為:“指定開始位置”,“刪除多少個元素個數(可以為0)”,“添加到數組中的新元素(從startIndex下標開始)”。

相關運用
//題目一:"A[B]C[D]E[F]G"將其分為兩個數組,分別是 ACEG 和 [B][D][F]. 複製代碼 代碼如下:function QuestionFn1() {
var str = "A[B]C[D]E[F]G";
var oGetTwoArray = new GetTwoArray();
//取左右括弧中的值
oGetTwoArray.GetLeftAndRightValue(str);
oGetTwoArray.GetNoLeftAndRightValue(str);
var array1 = oGetTwoArray.arrBetweenLeftRight;
var array2 = oGetTwoArray.arrNoLeftRight;
alert(array1.join(""));
alert(array2.join(""));
}
//找到左右括弧的index
function GetTwoArray() {
this.indexLeft = 0; //左括弧索引
this.indexRight = 0; //右括弧索引
this.arrBetweenLeftRight = []; //數組:存放左右括弧中的字母
this.arrNoLeftRight = []; //數組:存放沒有括弧包圍的字母
//取左右括弧中的值
this.GetLeftAndRightValue = function(str) {
//找到字串中左括弧的index
this.indexLeft = str.indexOf('[');
this.indexRight = str.indexOf(']');
//取括弧中的值(包含括弧)
var value = str.substring(this.indexLeft, this.indexRight + 1);
//存放到數組中
this.arrBetweenLeftRight.push(value);
//剩下的str
var restStr = str.substr(this.indexRight + 1);
//如果還有左右括弧則繼續找
if (restStr.indexOf('[') != -1 && restStr.indexOf(']') != -1) {
this.GetLeftAndRightValue(restStr);
}
}
//取沒有左右括弧包圍的值
this.GetNoLeftAndRightValue = function(str) {
//找到字串中左括弧的index
this.indexLeft = str.indexOf('[');
this.indexRight = str.indexOf(']');
//取沒有左右括弧包圍的值(跟著右括弧的第一個)
var value = str.substring(0, 1);
if (value != '[') { //因為第一個就有可能就是左括弧
//存放到數組中
this.arrNoLeftRight.push(value);
}
//剩下的str
var restStr = str.substr(this.indexRight + 1);
//如果還有左右括弧則繼續找
if (restStr.indexOf('[') != -1 && restStr.indexOf(']') != -1) {
this.GetNoLeftAndRightValue(restStr);
}
//剩下的沒有左右括弧了,就全部添數組裡去
else if (restStr.indexOf('[') == -1 && restStr.indexOf(']') == -1) {
this.arrNoLeftRight.push(restStr);
}
}
}

//題目二:有兩個有序整數數組,例如【1, 3, 5, 7, 9】和【2, 4, 6, 7, 8, 10, 13】,設計一個函數使兩個數組合并,並且剔除掉兩個數組裡重複的元素. 複製代碼 代碼如下:function QuestionFn2() {
var arr1 = [1, 3, 5, 7, 9];
var arr2 = [2, 4, 6, 7, 8, 10, 13];
//迴圈arr2中的每一個元素 去跟 arr1中的每一個元素 比較
for (var j = 0; j < arr2.length; j++) {
for (var i = 0; i < arr1.length; i++) {
//如果第二個數組中的數 小於數組一中的 某個數 則插到他前面
if (arr2[j] < arr1[i]) {
arr1.splice(i, 0, arr2[j]);
break;
}
//相等則剔除
else if (arr2[j] == arr1[i]) {
arr1.splice(i, 1, arr2[j]);
break;
}
//如果 arr2[j] 比 數組1中的 最後一個數還大 則插到最後面去
else if (arr2[j] > arr1[arr1.length - 1]) {
arr1.push(arr2[j]);
}
}
}
alert(arr1.toString());
}

//題目三:給定一個整數數組,例如【2, 4, 5, 6, 7, 8】和一個數字,例如10,請設計一個函數找出兩個元素,並且使這兩個數的和為給定數字,並列印出來. 複製代碼 代碼如下:function QuestionFn3() {
var sum = window.prompt("請輸入數組中兩數相加的和", 10);
var arr = [2, 4, 5, 6, 7, 8];
var isFind = false; //記錄是否存在
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[j] + arr[i] == sum) {
alert(arr[i] + "+" + arr[j] + "=" + sum);
isFind = true;
}
}
}
//如果沒有找到
if (!isFind) {
alert("數組中沒有兩數相加等於" + sum);
}
}

更多javascript 數組基礎可以參考
javascript數組使用調用方法匯總

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.