我有两个输入。第一个输入#index
值可用于定位Array
中的特定索引。第二个输入#length
值可用于打印我们想要的项目数量。
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]
答案 0 :(得分:2)
您可以使用document
并从起始索引中减去:
Array.from
&#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>