使用splice对嵌套数组进行排序的Javascript函数

珍妮

我想使用看起来像这样的拼接对嵌套数组进行排序

[ [ 'Ruby', 65 ], [ 'Python', 90 ] , ['Javascript', 10]]

基于内部数组的值以降序排列。

预期输出:

[[ 'Python', 90 ] , ['Ruby', 65], ['Javascript',10]]

我的尝试:

function ordarray (para){

  let results=para

  for (let j=0; j<results.length; j++){
    if (results[j][1] < results[j+1][1]) {
      results.splice(results[j], 0, results[j+1])
    }
  }

  return results
}

调用时,出现错误消息“无法读取未定义的属性'1'”

谢谢阅读!

brk

避免在迭代过程中修改数组。这行将results[j+1][1]引起问题,因为它将尝试在索引中查找未定义的元素

let arr = [
  ['Ruby', 65],
  ['Python', 90],
  ['Javascript', 10]
];

function ordarray(para) {
  return para.sort((a, b) => b[1] - a[1])
}

console.log(ordarray(arr))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章