我最近开始从雄辩的Javascript开始学习Javascript,并开始学习数据结构的方式。
有一个编码练习如下
编写两个函数,reverseArray和reverseArrayInPlace。第一个是reverseArray,它以一个数组作为参数,并生成一个具有相同元素的新数组。第二个是reverseArrayInPlace,它执行反向方法所做的工作:它修改作为参数的数组,以便反转其元素。两种方法都不能使用标准的反向方法。
这是我的密码
/*
* Create a Function reverseArray which returns a new array with the reversed array
* Create another Function reverseArrayInPlace() which modifies the ORiginal Array .
*/
function reverseArray(array) {
var reversed = [];
for (var i = 0; i < array.length; ++i) {
reversed[i] = array[array.length - (i + 1)];
}
return reversed;
}
function reverseArrayInPlace(array) {
var temp = 0;
for (var i = 0; i < array.length; ++i) {
temp = array[i];
array[i] = array[array.length - (i + 1)];
array[array.length - (i + 1)] = temp;
}
}
// Test Case
var ar = [10, 9, 8, 7, 6];
console.log(reverseArray(ar));
// Reverse the Array
reverseArrayInPlace(ar);
console.log(ar);
reverseArray()函数很好地完成了它的工作,返回了相反的数组,但是reverseArrayInPlace()不能工作。
我做错什么了?
发布于 2021-02-01 15:58:36
如果您不太担心优化代码和学习,那么还有另一种方法来对代码进行排序,那就是气泡排序。
function reverseArrayInPlace(arr){
for (let i=0;i< arr.length;i++){
for (let j=0;j< arr.length;j++){
if (arr[j]<arr[j+1]) {
let holder=arr[j]
arr[j]=arr[j+1]
arr[j+1]=holder
}
}
}
return arr;
}
console.log(reverseArrayInPlace([1,2,3,4,5])) //[5,4,3,2,1]如果你想反转一个像10,9,8,7,6这样的数组,只需在IF中将小于号翻转为大于号。
if(arr[j]>arr[j+1])https://stackoverflow.com/questions/37495310
复制相似问题