配列
4つの一般的な方法の配列
押す()
- この方法は、アレイの端部に一つ以上の要素を追加して、配列の新しい長さを返してもよいです
- 要素は、メソッドに追加するパラメータとして渡すことができ、これらの要素が自動的にアレイの末尾に追加されます
ポップ()
- この方法は、配列の最後の要素を削除し、削除される要素を返すことができます
アンシフト()
- 配列の先頭に1つ以上の要素を追加して、配列の新しい長さを返します。
- あなたは要素を追加した後、インデックスの他の要素はそれに応じて調整されます
シフト()
- あなたは、配列の最初の要素を削除し、戻り値として返しますすることができます
反復
- forループ
var arr = ["张三","李四","王五","马六"];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
- forEachの*
//forEach() 不支持IE9以下浏览器
var arr = ["张三","李四","王五","马六"];
/*
* forEach()方法需要一个函数作为参数
* - 像这种函数,由我们创建但不是我们调用的,我们称之为回调函数
* - 数组中有几个元素就会执行几次,每次执行时,浏览器会将遍历到的元素以实参的形式
* 传递进来,我们可以定义形参,来读取这些内容
* - 浏览器会在回调函数中传递三个参数:
* 第一个参数:当前正在遍历的元素
* 第二个参数:当前正在遍历的元素的索引
* 第三个参数:当前正在遍历的数组
*/
arr.forEach(function(value, index, obj){
console.log(value);
});
スライス()、およびスプライス()
スライス()
- 指定された配列からの要素を抽出するために使用することができます
- パラメータ:切り出し位置のインデックス、終了位置を取るインデックス(開閉の前と後、第2引数は書き込むことはできません、最後の要素にデフォルトを取ります)
- インデックスは、負の最後の要素であってもよい-1
スプライス()
- 削除要素は、配列に新しい要素を追加します
- 指定された要素は、元の配列とリターンから除去されます
- パラメータ:
まず:スタート位置のインデックス
秒:削除された回数
:3回目以降
あなたが自動的に開始インデックスの位置に挿入される、いくつかの新しい要素を渡すことができます前に、
重複排除アレイ
//创建一个数组
var arr = [1,2,3,2,1,3,4,2,5];
//数组去重1
//获取数组中的每一个元素(遍历)
for(var i=0; i<arr.length; i++){
//遍历当前元素后的所有元素
for(var j=i+1; j<arr.length; j++){
//判断两个元素值是否相等
if(arr[i]==arr[j]){
//相等则证明出现重复,删除j对应元素
arr.splice(j,1);
//当删除了当前j所对应元素后,后面的元素会自动补位
//导致j新对应的元素无法进行比较,如果该元素依旧重复则会遗漏
//故使j自减
j--;
}
}
}
console.log(arr);
他の方法のアレイ
/* 1
* concat()可以连接两个或多个数组,并将新的数组返回
* - 该方法不会对原数组产生影响
* - 参数也可以为元素
*/
/* 2
* join()方法可以将数组转换为一个字符串
* - 该方法不会对原数组产生影响,而是将转换后的结果返回
* - 可以指定一个字符串作为参数,它将会作为数组元素的连接符,不填则默认为","
*/
/* 3
* reverse()方法可以用来反转数组
* - 会直接操作原数组
*/
/* 4
* sort()用来对数组元素进行排序
* - 改变原数组
* - 默认按照Unicode编码进行排序,即使对纯数字数组排序一会按照Unicode编码排序
* - 我们可以自己指定排序规则,在sort()添加一个回调函数
* 回调函数中需要定义两个形参
* 浏览器将会分别使用数组中的元素作为实参去调用回调函数
* - 浏览器会根据回调函数的返回值来决定元素的顺序
* 如果返回一个大于0的值,则元素交换位置
* 如果返回一个小于0的值,则元素位置不变
* 如果返回一个0,则认为两个元素相等,不交换位置
*/
var arr = [5,4,2,3,1];
arr.sort(function(a,b){
return a - b; //升序
//return b - a; //降序
});