我正在编写一个代码,我需要在数组中反转某些元素,其余部分应保持不变。例如,一个数组的值为1,2,3,4,5,6,我必须反转它的4个元素,然后输出应该是4,3,2,1,5,6。我正在使用下面的代码来实现这一点但是得到错误,请建议。
function reverseArray(n, a) {
var interimArray1 = [];
//var interimArray2=[];
//var finalArray=[];
for (var i < n; i >= 0; i--) {
interimArray1.push[a[i]];
}
for (var i = n; i < a.length; i++) {
interimArray1.push[a[i]];
}
for (var i = 0; i < interimArray1.length; i++) {
console.log(interimArray1[i]);
}
}
var arr = [1, 2, 3, 4, 5, 6];
var num = 4;
reverseArray(num, arr);
答案 0 :(得分:2)
您的代码中的错误是您打算在push
上调用a[i]
方法,如下所示:
interimArray1.push(a[i]);
但是你写了:
interimArray1.push[a[i]];
你犯了两次错误。要为push
方法提供参数,必须使用圆括号()
。
通过修复,您将看到您的代码完美无缺。
答案 1 :(得分:0)
您可以使用Array#slice
,Array#splice
,如下所示。
function partialReverse(arr, num, from = 0) {
var slicedArr = arr.slice(from, num + from);
arr.splice(from, num); // Remove `num` items from array
arr.splice(from, 0, ...slicedArr.reverse()); // Add `num` reversed items
return arr;
}
var arr = [1, 2, 3, 4, 5, 6];
console.log(partialReverse(arr, 4, 0)); // Reverse four items from `arr` starting from 0th index
console.log(partialReverse(arr, 4, 1)); // Reverse four items from `arr` starting from 1st index
答案 2 :(得分:0)
很多提示但你似乎错过了它们。 ; - )
您需要为 i 分配初始值,因此:
for (var i = n; ... )
===========^
此外,您需要使用()
来调用函数,而不是[]
,所以:
interimArray1.push(a[i]);
==================^====^
以下 块中的相同内容。否则,代码可以工作,虽然它比它需要的更冗长。
答案 3 :(得分:0)
这是有效的:
我确信有更快的方法。此外,它只适用于数组开头的元素,但您可以根据想要的内容调整函数。
<div style="box-shadow: 0 0 3pt 2pt #0088cc;" class="col-md-12">
<div class="col-md-12">
<div class="col-md-12">
<div class="heading heading-border heading-middle-border heading-middle-border-center heading-border-lg" style="margin-top: -24px; width: 1202px; margin-left: -42px;">
<h2>What we do</h2>
</div>
</div>
</div>
<div class="tabs tabs-bottom tabs-center tabs-simple">
<div class="tab-content">
<div class="tab-pane active" id="tabsNavigationSimpleIcons1">
<div class="center">
<h4>test</h4>
</div>
</div>
</div>
</div>
</div>
&#13;
var reverseArray = function(arr,elementsToReverse) {
var tempArrayRev = [];
var tempArray = [];
for (var i=0;i<arr.length;i++) {
if (i < elementsToReverse) {
tempArrayRev[i] = arr[i];
} else {
tempArray.push(arr[i]);
}
}
return tempArrayRev.reverse().concat(tempArray);
}
var array = [1,2,3,4,5,6];
document.getElementById('arrayOutput').innerHTML += reverseArray(array,4);
&#13;
答案 4 :(得分:0)
这是你可以测试它的答案。
function reverseArray(n, a) {
var interimArray1 = [];
for (var i = 0; i < a.length; i++) {
interimArray1.push(a[i]);
}
for (var i = num; i >=0; i--) {
interimArray1[i-1] = a[n - i];
}
for (var i = 0; i < interimArray1.length; i++) {
console.log(interimArray1[i]);
}
}
var arr = [1, 2, 3, 4, 5, 6];
var num = 4;
reverseArray(num, arr);
答案 5 :(得分:-1)
你可以使用这样的东西。
a