我尝试 对数组进行排序,然后再转到csv 。我得到一个数组对象数组,我需要对它们进行排序。
如果公司和职位不是n/a
,n/a
那些价值来自公司和职位。
我正在分享完整数组的屏幕截图,该功能可以帮助我。
两个数组,其中公司和位置名称为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--;
}
答案 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;
}