インターセプト配列:slice(startIndex, endIndex):
配列内の指定された開始位置と終了位置にある配列を返します。元の配列の内容は変更されません。
もう 1 つの重要なメソッド、配列要素を挿入、削除、または置換するメソッドがあります:
splice(startIndex, howmany, element1~elementX): 元の配列の内容を変更します。パラメータの意味は、「開始位置の指定」、「削除する要素の数 (0 も可)」、「配列に追加される新しい要素 (startIndex 添字から開始)」です。
関連アプリケーション
//質問 1: "A[B]C[D]E[F]G" は 2 つの配列、つまり 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.arrNoLeftRight;
alert(array2 .join(""));
}
//左右の括弧のインデックスを検索します
function GetTwoArray() {
this.indexLeft = 0;左括弧の
this.indexRight = 0; //右括弧インデックス
this.arrBetweenLeftRight = []; //配列: 左括弧と右括弧内に文字を格納します
this.arrNoLeftRight = [] / /Array: 括弧で囲まれていない文字を格納します
//左右の括弧内の値を取得します
this.GetLeftAndRightValue = function(str) {
//文字列内の左括弧のインデックスを見つけます
this.indexLeft = str.indexOf('[');
this.indexRight = str.indexOf(']');
//括弧内の値を取得します (括弧を含む)
var value = str.substring(this.indexLeft, this.indexRight 1);
//配列に格納されます
this.arrBetweenLeftRight.push(value);
//残りの str
varrestStr = str.substr(this.indexRight 1);
/ /左括弧と右括弧がある場合は、続けて
if (restStr.indexOf('[') != -1 &&restStr.indexOf(') ]') != -1) {
this.GetLeftAndRightValue(restStr) ;
}
}
//左括弧と右括弧なしで値を取得します
this.GetNoLeftAndRightValue = function(str ) {
//文字列内の左括弧のインデックスを検索します
this .indexLeft = str.indexOf('[');
this.indexRight = str.indexOf(']'); 🎜>//左右の括弧なしで値を取得します(最初の右括弧に続いて)
var value = str.substring(0, 1);
if (value != '[') { //最初のものは左括弧である可能性があります
//配列に格納されます
this.arrNoLeftRight.push(value)
}
//残りの str
varrestStr = 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);
}
}
//質問 2: [1, 3, 5, 7, 9] と [2, 4, 6, 7, 8, 10, 13] などの 2 つの順序付き整数配列がある場合、関数を設計します2 つの配列をマージし、2 つの配列内の重複要素を削除します。
コードをコピーします
for (var j = 0; j for (var i = 0; i //2 番目の配列の場合、数値が配列 1 の特定の数値より小さい場合、その数値をその前に挿入します。
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());
}
//質問 3: [2, 4, 5, 6, 7 などの整数の配列が与えられた場合] 、8] と 10 などの数値を指定して、2 つの要素を見つける関数を設計してください。これら 2 つの数値の合計を指定された数値にして、
コードをコピー
function QuestionFn3() {
var sum = window.prompt("配列内の 2 つの数値の合計を入力してください", 10);
var arr = [2, 4, 5] , 6, 7, 8];
var isFind = false; //レコードが存在します
for (var i = 0; i
alert(arr[i] " " arr[j] "=" sum);
isFind = true;
}
}
}
//見つからない場合
if (!isFind) {
alert("配列内の 2 つの数値の合計は " sum);
}
}
JavaScript 配列の基本の詳細については、
JavaScript 配列の使用法呼び出しメソッドの概要