反转数组javascript中的一定数量的元素

时间:2016-04-04 02:41:11

标签: javascript arrays

我正在编写一个代码,我需要在数组中反转某些元素,其余部分应保持不变。例如,一个数组的值为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);

6 个答案:

答案 0 :(得分:2)

您的代码中的错误是您打算在push上调用a[i]方法,如下所示:

interimArray1.push(a[i]);

但是你写了:

interimArray1.push[a[i]];

你犯了两次错误。要为push方法提供参数,必须使用圆括号()

通过修复,您将看到您的代码完美无缺。

答案 1 :(得分:0)

您可以使用Array#sliceArray#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)

这是有效的:

我确信有更快的方法。此外,它只适用于数组开头的元素,但您可以根据想要的内容调整函数。

&#13;
&#13;
<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;
&#13;
&#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