如何通过每个数组中的某个索引对循环内的数组列表进行排序? JavaScript的

时间:2017-07-21 15:32:38

标签: javascript arrays ajax sorting

你好我在尝试排序数组的某个对象时遇到问题我有这样的事情

好的,这是一个更好的例子,我从ajax调用接收字符串,字符串是这样的:

"名称|价格|等等|等等@名称|价格|等等|等等"

并使用split函数将分隔符@分割成两个数组,然后再将它们拆分为| (管道),结果我得到以下内容:

并循环遍历每个像这样的值

 for(z = 0; z < actualarr.length; z++) {
   arr[1],
   arr[2]
   .....
 }


 ["name", "price", "blah" "blah"],
 ["name", "price", "blah" "blah"],
 ["name", "price", "blah" "blah"],
 ["name", "price", "blah" "blah"],
 ["name", "price", "blah" "blah"],
 ["name", "price", "blah" "blah"]

问题是它们在for循环中,每个数组都是一个项目,我想要做的是按照&#34; price&#34;的值对项目进行排序。这是在一定的指数。谢谢!

2 个答案:

答案 0 :(得分:0)

arr.sort((x,y) => x[1] - y[1])

让1成为您的特定索引,arr是您的数组

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

答案 1 :(得分:0)

您只能在生成数据之外对数组进行排序。获得完整数组后,可以使用Array#sort对其进行排序。

var string = "foo|42|blah1|blah2@bar|17|blah3|blah4",
    array = string.split('@').map(function (s) { return s.split('|'); });
    
array.sort(function (a, b) { return a[1] - b[1]; });

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }