我有一個物件陣列和一個洗掉函式,該函式將索引作為引數傳遞但未能洗掉空物件。可以洗掉包含屬性的物件。有誰知道如何修理它?示例代碼如下所示。
let array = [
{
id: '1',
name: 'sam',
dateOfBirth: '1998-01-01'
},
{
id: '2',
name: 'chris',
dateOfBirth: '1970-01-01'
},
{
id: '3',
name: 'daisy',
dateOfBirth: '2000-01-01'
},
{}
]
// Objects contain properties can be removed but empty object can not be removed.
const deleteItem = (index) => {
return array.splice(index, 1);
};
uj5u.com熱心網友回復:
使用Array.filter過濾掉不具有性質的物品
let array = [
{id:"1",name:"sam",dateOfBirth:"1998-01-01"},
{id:"2",name:"chris",dateOfBirth:"1970-01-01"},
{id:"3",name:"daisy",dateOfBirth:"2000-01-01"},
{}
]
const filtered = array.filter(e => Object.keys(e).length)
console.log(filtered)
上述作業因為Object.keys將回傳物件屬性的陣列。獲取其length屬性將獲取陣列中的專案數。如果該length屬性為0,則將其強制為false(請參閱:Falsy values)。
uj5u.com熱心網友回復:
試試這個。這將按索引號洗掉您的物件。
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrays</h2>
<p id="demo"></p>
<script>
let array = [
{
id: '1',
name: 'sam',
dateOfBirth: '1998-01-01'
},
{
id: '2',
name: 'chris',
dateOfBirth: '1970-01-01'
},
{
id: '3',
name: 'daisy',
dateOfBirth: '2000-01-01'
},
{}
]
var index=2;
deleteItemByIndex(index);
function deleteItemByIndex(index){
if(index>0){
return array.splice(index, 1);
}else{
return array;
}
};
</script>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354873.html
標籤:javascript 数组
