在输出数组中应该是[第1个最高,第1个最低,第2个最高,第2个最低等等]例如: - 输入:arr [] = {1,2,3,4,5,6,7} 输出:arr [] = {7,1,6,2,5,3,4}
答案 0 :(得分:2)
首先,使用有效的JS语法。
迭代数组,递增2。在每次迭代时,弹出数组中的最后一项并将其拼接到当前索引处的位置。
var arr = [1, 2, 3, 4, 5, 6, 7];
arr.sort((a, b) => a-b);
for (var i = 0; i < arr.length; i+=2) {
arr.splice(i, 0, arr.pop());
}
console.log(arr);
&#13;
答案 1 :(得分:2)
您可以在需要的索引处找到放置值的位置。此提案需要排序数组。
它可以在不改变数组的情况下工作。
var array = [1, 2, 3, 4, 5, 6, 7],
result = array.reduce(function (r, a, i, aa) {
r[i < aa.length >> 1 ? i * 2 + 1 : (aa.length - i - 1) * 2] = a;
return r;
}, []);
console.log(result);
&#13;
简单的解决方案。有变异。
var array = [1, 2, 3, 4, 5, 6, 7],
result = [],
action = 'shift',
toggle = { pop: 'shift', shift: 'pop' };
while (array.length) result.push(array[action = toggle[action]]());
console.log(result);
&#13;
答案 2 :(得分:1)
快速而肮脏,似乎有效
function maxminform(arr){
arr = arr.sort();
var res = [];
for(var i=0, j = arr.length-1; i <= j; i++, j--){
if(i != j) res.push(arr[j]);
res.push(arr[i]);
}
return res;
}
var a = [5,6,2,3,8,1,4,7];
console.log(maxminform(a));
&#13;
答案 3 :(得分:1)
这里我首先创建了一个排序数组,执行<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="first">
First
<div class="second">
Second
<label for="inp">Label Input</label>
<input type="text" name="inp" />
</div>
</div>
也是防止更改原始数组的好方法。
然后我映射结果。如果映射索引的模数= 0,我们从数组的末尾获取下一个数字,否则我们从头开始。 [].concat
变量将与我们采用该值的乞讨和结束相距多远。
dv
答案 4 :(得分:0)
var a = [1, 2, 3, 7, 5, 6, 4];
var ans = [];
a.sort(function(a, b) {
return a - b;
})
//For Even length
if (a.length % 2 == 0) {
for (i = 0; i < a.length / 2; i++) {
ans.push(a[a.length - 1 - i]);
ans.push(a[i]);
}
}
//For Odd length
else {
ans.push(a[a.length - 1])
a.pop();
for (i = 0; i < a.length / 2; i++) {
ans.push(a[i]);
ans.push(a[a.length - 1 - i]);
}
}
console.log(ans);
&#13;
答案 5 :(得分:0)
连续 最大/分钟 对......
var arr = [1, 2, 3, 4, 5, 6, 7],
result = [];
for(var i=0; i < arr.length; i++) {
var max = Math.max.apply(null, arr), min = Math.min.apply(null, arr);
arr.splice(arr.indexOf(max), 1);
arr.splice(arr.indexOf(min), 1);
result.push(max, min);
}
if (arr.length) result.push(arr.pop());
console.log(result);
&#13;
答案 6 :(得分:0)
array