[英]Sorting multidimensional js array
建议的重复答案没有解决
我有 4 个隐藏输入,其中值根据用户操作递增。 Var Id 获取每个输入值的 id 和 var val 其值。
<input class="howmanyproducts" id="<?php echo $value; ?>" name="<?php echo $value; ?>" type="hidden" value="0">
我将每组值推送到一个数组中,该数组将输出:
8(id), 1(val)
9, 2
3, 5
7, 8
我需要根据 val 对这些值进行排序。 所以上面应该返回:
7, 8
3, 5
9, 2
8, 1
以下是我到目前为止所拥有的,希望这个问题是有道理的!
$("#proddiv .howmanyproducts").each(function() {
var id = this.id;
var val = $(this).val();
ids.push([id, +val]);
});
ids.sort(function(b, a) { return a[1] - b[1]; });
$("#productorder").val(ids);
$("#productscore").submit();
下面是我如何检索需要排序的表单数据
$prodorder = $_POST['productorder'];
$array2 = array_unique(explode(',', $prodorder));
我当前的代码根本没有改变顺序!
项目,然后表单将提交。 我认为这是你的问题,我测试了你的排序功能,这是真的:
var arr = [];
arr.push([1, 3]);
arr.push([2, 2]);
arr.push([4, 8]);
arr.push([0, 9]);
arr.sort(function (b, a) { return a[1] - b[1]; });
console.log(arr);
我相信您想按val
值的降序对具有id
和val
属性的对象数组进行排序,对吗? 如果是这种情况,那么sort
将满足您的需求:
let A = [{id: 8, val: 1}, {id: 9, val: 2}, {id: 3, val: 5}, {id: 7, val: 8}]
A.sort((a, b) => a.val < b.val)
[{id: 7, val: 8}, {id: 3, val: 5}, {id: 9, val: 2}, {id: 8, val: 1}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.