在获取csv之前对对象数组进行排序?

时间:2018-04-27 06:53:47

标签: jquery

我尝试 对数组进行排序,然后再转到csv 。我得到一个数组对象数组,我需要对它们进行排序。

如果公司和职位不是n/an/a那些价值来自公司和职位。

我正在分享完整数组的屏幕截图,该功能可以帮助我。

enter image description here

两个数组,其中公司和位置名称为n/a,另一个数组在进入csv之前不存在。

我需要根据数据n/a对数据进行排序。该部分应该排在最后。

我怎么能这样做..

我用过,但没用。请帮忙

var array_length = users.length;
var array_2 = [];
var k = (array_length-1);
for(i=0;i<array_length;i++){
   console.log(k);
   if(users[i]=="n/a") {
      array_2['_'+k]= users[i]
   } else {
      array_2[i]= users[i]
   }
   k--;
}

2 个答案:

答案 0 :(得分:1)

尝试在您的阵列上应用sort功能

users.sort(function(a, b) {
  var nameA = a.company.toUpperCase(); // ignore upper and lowercase
  var nameB = b.company.toUpperCase(); // ignore upper and lowercase
  if( nameA === 'N/A' ||  nameB === 'N/A')
    return -1;
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // names must be equal
  return 0;
});

答案 1 :(得分:0)

我通过将它发送到两个数组然后将它们合并为一个来获得解决方案: -

$( document ).ready(function() { 
    $(".first").click(function(){ 
        //variable test 
        window.test = 10;  
    }); 
    $(".second").click(function(){ 
    console.log(window.test); 
    });   
}); 

我在我的下载csv代码中调用了这个: -

Csv下载功能: -

function sort_(users_arr=false)
{ 
  var complete_member = 0,
       members = users_arr.filter(function(user) { /** here i got complete member**/
            return user.level >= 1
        });
        members.forEach(function(member) {
        if(member.level == 2){
          complete_member++
        }
     });
    var test = [];
    var test1 = [];
    var loop_length = members.length;     
     for (var i = 0; i < loop_length; i++) {
       if(members[i].company == 'n/a' || members[i].position == 'n/a'){
            test1.push(members[i]);
          }
       else{
             test.push(members[i]);
           }
      }   
     var flatArray = [].concat.apply(test,test1);
     return flatArray;  
}