JSの操作方法

コピーに連結()メソッド
  連結コピーは、複数のアレイは、アレイを形成するように接続され、コピーした後、新しい配列に新しい要素を追加します
新しい配列によると、すべての創造の配列にすることができます。このメソッドは、現在の配列のコピーを作成し、このコピーの最後に受信したパラメータを追加し、最終的には新築の配列を返します。
連結に渡さ()メソッドは、1つまたは複数のアレイであります
渡された値が配列されていない場合、これらの値は、単に、アレイの最終結果に追加されます
ARR = [1,3,5]でした。
 VAR ARR1 = arr.concat(2,4,6、[7,8,9])。
 警告(ARR1); // 1,3,5,2,4,6,7,8,9
 

連結復興:

関数CONCAT(ARR){
VAR配列= [];
VAR指数= 0;
ため(VAR iが0 =; I <arr.length; I ++、インデックス++){
配列[インデックス] = ARR [I]。
}
{(; J <arguments.lengthをJ ++、インデックス++ VARのJ = 1)のための
IF(引数[J] .constructor ===アレイ){
(VARのK = 0; K <引数[J] .LENGTH; K ++インデックス++){
配列[インデックス] =引数[J] [K]。
}
index--。
}他{
配列[インデックス] =引数[J]。
}
}
の配列を返します。
}

 
 
コピーにスライス()メソッド
これは、現在のアレイ内の1つのまたは複数の項目に基づいて、新しい配列を作成することができます
スライス()メソッドは、アイテムの開始及び終了位置に戻るように、すなわち、一つまたは二つのパラメータを受け入れることができます

 (前に撮影したものを位置の任意の開始位置から)arr.slice; //元の配列の変更せずに、新しい配列を返します
 ARR1 = arr.slice()VARを; //新しい配列のコピー
 ARR1 = arr.slice VARを(1 );尾には、いくつかの//コピー
 ; VAR ARR1 = arr.slice(-2) // の終わりに最後の第2のコピー
 ; VAR ARR1 = arr.slice(2,3) // 秒〜前三位にコピーします

例えば:

 

VAR色= [ "赤"、 "緑"、 "青"、 "黄"、 "パープル"]。

 

VAR colors2 = colors.slice(1)。

 

VAR colors3 = colors.slice(1,4)。

 

警告(colors2)。//、緑、青、黄、紫

 

警告(colors3)。//緑、青、黄色

 

スライスの再構築:

function slice(arr,start,end){
start=Number(start);
end=Number(end);
if(isNaN(start)) start=0;
if(isNaN(end)) end=arr.length;
if(start<0) start=start+arr.length;
if(end<0) end=end+arr.length;
var a=[];
for(var i=start,j=0;i<end;i++,j++){
a[j]=arr[i];
}
return a;
}
var arr1=slice(arr,2,-1);
console.log(arr1,arr);

 

splice()方法    删除   插入   替换

 给数组中添加、删除、替换一个或者多个元素,返回被删除元素组成的数组

 
删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数
插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。

arr.splice(从什么位置开始,删除多少个元素,添加的元素...);
  var arr=[1,3,5,7,9,2,4,6,8,10];
// var arr1=arr.splice();//创建一个空数组

// var arr1=arr.splice(0);//将数组的所有元素传递给新数组

// 负数指从后向前数
// var arr1=arr.splice(-2);//从数组的倒数第二位开始截取到尾部

// var arr1=arr.splice(2,2);//从第二位开始删除2个元素

// var arr1=arr.splice(2,0,12,14);//插入元素13,14,插入在第二位

// var arr1=arr.splice(2,2,12,14);//替换元素,删除两位并且插入12,14
// console.log(arr1,arr);

splice重构:

function splice(arr,start,count){
var a=[];
start=Number(start);
count=Number(count);
if(isNaN(start)) return a;
if(start<0) start+=arr.length;
if(isNaN(count)) count=arr.length-start;
for(var i=start,j=0;i<arr.length;i++,j++){
if(j<count)a.push(arr[i]);
arr[i]=arr[i+count];
}
for(var l=0;l<arguments.length-3;l++){
for(var m=arr.length-1;m>=start+l;m--){
arr[m+1]=arr[m];
}
}
for(var n=3;n<arguments.length;n++){
arr[start+n-3]=arguments[n];
}
for(var k=0;k<count;k++){
arr.length--;
}
return a;
}
var arr1=splice(arr,-2,2,10,11,12);
console.log(arr1,arr);

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/zmlAliIqsgu/p/12129457.html