javascript - 对具有 JavaScript 中偏移量的对象数组进行排序

标签 javascript jquery arrays angularjs

我是网络开发的新手。在这里,我确实有一个类似于

的数组
[{
        endOffset: "50"
        startOffset: "25"
        type: "Education"
    },
    {
        endOffset: "67"
        startOffset: "55"
        type: "address"
    },
    {
        endOffset: "65"
        startOffset: "59"
        type: "project"
    },
    {
        endOffset: "80"
        startOffset: "70"
        type:"fullname"
    }]

在这个对象数组中,现在我根据结束偏移量对其进行排序。就像 ->

jsonDataArray.sort(function (a, b) {
            return a.startOffset - b.startOffset;
          });

然后它给了我排序后的数组。但这里它仅根据 startoffset 进行排序。

我想要的是我想要一个像这样的数组,它将按开始和结束偏移的升序排序,这样数组就会像

[{
 starOffset: "25",
 type: "Education"
}, {
 endOffset: "50"
 type: "Education" },

{
 startoffset: "55"
 type: "address" },
{
 startoffset: "59"
 type: "project" },
{
 endoffset: "65"
 type: "project" },

{
 endoffset: "67"
 type: "address" 
},
{
 endoffset: "67"
 type: "address" 
},
{
 startOffset: "70"
 type: "address" 
},
{
 endoffset: "80"
 type: "address" 
},

]

那么,我该怎么做呢?任何人都可以帮我解决这个问题吗?

最佳答案

首先在单独的对象中使用 startOffsetendOffset 创建所需的数组,然后您可以为 aValbVal< 分配值 通过 sort 函数中的条件进行排序,如下代码中所述:

var jsonDataArray = [{
        endOffset: "50",
        startOffset: "25",
        type: "Education"
    },
    {
        endOffset: "67",
        startOffset: "65",
        type: "address"
    },
    {
        endOffset: "65",
        startOffset: "59",
        type: "project"
    },
    {
        endOffset: "80",
        startOffset: "70",
        type:"fullname"
    }];

var newJSON = [];
jsonDataArray.forEach((obj)=>{
  var  tempObj = {
     endOffset: obj.endOffset,
     type: obj.type
  };
  newJSON.push(tempObj);
  tempObj = {
     startOffset: obj.startOffset,
     type: obj.type
  };
  newJSON.push(tempObj);
});
newJSON.sort(function (a, b) {
  var aVal = a.startOffset?a.startOffset:a.endOffset;
  var bVal = b.startOffset?b.startOffset:b.endOffset;
  return aVal - bVal;
});
console.log(newJSON);

关于javascript - 对具有 JavaScript 中偏移量的对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50101632/

相关文章:

javascript - Vue js datepicker,只获取格式化的日期部分

jquery - 背景渐变不适用于 Bootstrap navbar-fixed-top

ruby-on-rails - Rails 3 使用 activerecord 将外键与 id 列表进行比较

javascript - 将 jquery 数组中的值设置为 span

PHP - 使用数组值满足特定条件并执行操作

javascript - 从隐藏的 url 中检索参数

javascript - WebAudio 停止后不播放(0)

javascript - 一个简单的 jquery 片段来验证用户的电子邮件地址

ajax - 没有从文本到字符串的转换 - ajax 调用失败

javascript - Ajax !需要一个小修复