1.反转数组
「1.定义一个新数组进行反转」
var arr=['red','green','blue','pink','purple']
var arr1=[]
var j=0
for(var i=arr.length-1;i>=0;i--){
// arr1[arr1.length]=arr[i]
arr1[j]=arr[i]
j++
}
console.log('反转前的数组' + arr);
console.log('反转后的数组' + arr1);
「2.在原数组上进行反转」
var arr = ['red', 'green', 'blue', 'pink', 'purple','bluesky']
console.log('反转前的数组' + arr);
var temp = ''
var length = parseInt(arr.length / 2)
for (var i = 0; i < length; i++) {
temp = arr[i]
arr[i] = arr[arr.length - 1 - i]
arr[arr.length - 1 - i] = temp
}
console.log('反转后的数组' + arr);
「3.代码优化」
var arr = ['red', 'green', 'blue', 'pink', 'purple','bluesky']
console.log('反转前的数组' + arr);
var i = 0
var j = arr.length - 1
while (i < j) {
var temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
i++
j--
}
console.log('反转前的数组' + arr);
2.冒泡排序
「1.冒泡排序」默认升序
var arr = [10, 7, 5, 27, 98, 31];
console.log("排序前的数组"+arr);
for (var i = 0; i < arr.length; i++) { // 外层循环管趟数
for (var j = 0; j < arr.length - 1; j++) { // 里面的循环管 每一趟的交换次数
// 内部交换2个变量的值 前一个和后面一个数组元素相比较
if (arr[j] < arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log("排序后的数组"+arr);
「2.代码优化」
var arr = [10, 7, 5, 27, 98, 31];
console.log("排序前的数组"+arr);
for (var i = 0; i < arr.length; i++) { // 外层循环管趟数
for (var j = i; j < arr.length; j++) { // 里面的循环管 每一趟的交换次数
// 内部交换2个变量的值 前一个和后面一个数组元素相比较
if (arr[i] < arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log("排序后的数组"+arr);
3.选择排序
//每趟都是从当前无序的序列中找到最小数并记录其下标(索引),然后将最小数与当前数组的第一个数交换(升序)
var arr = [45, 23, 11, 19, 78, 32, 46, 77, 5]
console.log("排序前的数组"+arr);
for (var i = 0; i < arr.length - 1; i++) {//记录趟数
var minIndex = i//记录当前无序数列中最小数的下标
for (j = i + 1; j < arr.length; j++) {//找当前数列的最小是记录其下标
if (arr[j] < arr[minIndex]) {//降序改为大于
minIndex = j
}
}
if (minIndex != i) {
//交换最小值与无序数组的第一个值进行交换
var temp = arr[minIndex]
arr[minIndex] = arr[i]
arr[i] = temp
}
}
console.log("排序后的数组"+arr);
</script>
4.找出数组中的最大值
var arr = [45, 78, 32, 11, 56, 99, 27]
var max = arr[0]
for (var i = 1; i < arr.length; i++) {
if (max <= arr[i]) {
max = arr[i]
}
}
console.log('max='+max);
5.找出数组中大于等于10的元素,存放到新数组中
var arr = [0, 1, 5, 0, 12, 6, 8, 9, 45, 5, 78]
var arr1 = []
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
arr1[arr1.length] = arr[i]
// arr1.push(arr[i])
}
}
console.log(arr1);
6.删除数组中所有值为0的元素
「1.定义一个新数」
var arr = [2, 0, 6, 1, 77, 0, 32, 0, 25, 7]
var arr1 = []
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
arr1[arr1.length] = arr[i]
}
}
console.log(arr1);
「2.在原数组上操作」
var arr = [2, 0, 6, 1, 77, 0, 32, 0, 25, 7]
for (var i = 0; i < arr.length; i++) {
if (arr[i] == 0) {
for (var j = i; j < arr.length ; j++) {
arr[j] = arr[j + 1]
}
arr.length--
}
}
console.log(arr);