[英]If the name value is empty, I need to change it to the end of the array in Javascript
我有一个数组。 如果 name 值为空,我需要将其更改为数组的末尾,我该如何在 Javascript 中做到这一点?
前任:
const data : [
{
id:0,
name:"gorkem"
}
{
id:1,
name:""
}
{
id:2,
name:"ahmet"
}
];
代替
const data : [
{
id:0,
name:"gorkem"
}
{
id:2,
name:"ahmet"
}
{
id:1,
name:""
}
];
使用两个调用进行过滤,一个用于获取具有非空名称的项目,另一个具有空名称。 然后将这两个 arrays 连接起来。
let non_empty = data.filter(el => el.name);
let empty = data.filter(el => !el.name);
let result = non_empty.concat(empty);
您可以根据“名称”的“真实性”对数组进行排序。
const data = [{
id:0,
name:"gorkem"
}, {
id:1,
name:""
}, {
id:2,
name:"ahmet"
}];
console.log(data.sort((a,b)=>!a.name - !b.name));
上面,我们基本上是在滥用这样一个事实,即空字符串是假值,相当于 0,而非空字符串是真值,相当于 1。每个都用“。”取反。 获得您所追求的反向排序顺序并将它们实际视为布尔值。
结果:
[
{
"id": 0,
"name": "gorkem"
},
{
"id": 2,
"name": "ahmet"
},
{
"id": 1,
"name": ""
}
]
首先你需要有一个有效的数组:
const data = [{
id:0,
name:"gorkem"
}, {
id:1,
name:""
}, {
id:2,
name:"ahmet"
}];
因此,从那开始,您可以使用循环删除空名称元素并添加到末尾:
for (let i = 0; i < data.length; i++) {
if (data[i].name === '') {
let val = data[i];
data.splice(i, 1);
data.push(val);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.