从后向打印特定索引的值

时间:2018-06-01 03:23:58

标签: javascript

我有两个输入。第一个输入#index值可用于定位Array中的特定索引。第二个输入#length值可用于打印我们想要的项目数量。

enter image description here

var arr = [1,2,3,4,5,6,7,8,9] // can have more or less items

我想使用index来获取预期的输出,但是无法获得放入代码的逻辑位置。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

$('button').click(function() {
  var index = $('#index').val();
  var length = $('#length').val();
  var newItems = []
  for (var i = arr.length; i > (arr.length - length); i--) {
    console.log(i)
    newItems.push(arr[i - 1])
  }
  console.log(newItems)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div>
    <label for="">1-9 only</label>
  </div>
  <input type="text" id="index" placeholder="index" />
  <input type="text" id="length" placeholder="lengh" />
  <button>Print</button>
</div>

所以期望的输出是

// Input
#index  - 1
#length - 1 

// output [9]

// Input
    #index  - 1
    #length - 2 

    // output [9,8]

// Input
    #index  - 9
    #length - 2 

    // output [8,7]

// Input
    #index  - 3
    #length - 5 

    // output [2,1,9,8,7]

2 个答案:

答案 0 :(得分:2)

您可以使用document并从起始索引中减去:

&#13;
&#13;
Array.from
&#13;
&#13;
&#13;

答案 1 :(得分:1)

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

$('button').click(function() {
  var index = $('#index').val();
  var length = $('#length').val();
  var newItems = [];
  var pos = (index + arr.length - 2) % arr.length;
  for (var i = 0; i < length; i++, pos = (pos + arr.length - 1) % arr.length) {
    newItems.push(arr[pos])
  }
  console.log(newItems)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div>
    <label for="">1-9 only</label>
  </div>
  <input type="text" id="index" placeholder="index" />
  <input type="text" id="length" placeholder="lengh" />
  <button>Print</button>
</div>