使用拼接从数组中删除子数组
Removing subarray from array with splice
我正在使用 splice 方法从数组中删除一个子数组,代码如下:
for(let i = 0; i < cid.length; i++)
{
if(coinsValue[cid[i][0]] < troco && cid[i][1] > 0)
available += cid[i][1]
if(coinsValue[cid[i][0]] > troco)
cid[i].splice(0)
}
输出为:
[ [ 'PENNY', 1.01 ],
[ 'NICKEL', 2.05 ],
[ 'DIME', 3.1 ],
[ 'QUARTER', 4.25 ],
[ 'ONE', 90 ],
[ 'FIVE', 55 ],
[ 'TEN', 20 ],
[ 'TWENTY', 60 ],
[] /// removed elements from this array, but not the array itself ]
如您所见,符合条件的元素已被删除,我仍然留下一个空数组。但是我想完全删除它!
有什么帮助吗?
您是从子数组中删除项目,而不是从数组本身中删除项目。
要从顶部数组中删除项目,您应该这样做:
cid.splice(i, 1)
而不是 cid[i].splice(0)
for(let i = 0; i < cid.length; i++) {
if (coinsValue[cid[i][0]] < troco && cid[i][1] > 0) {
available += cid[i][1];
} else if (coinsValue[cid[i][0]] > troco) {
cid.splice(i, 1);
}
}
我正在使用 splice 方法从数组中删除一个子数组,代码如下:
for(let i = 0; i < cid.length; i++)
{
if(coinsValue[cid[i][0]] < troco && cid[i][1] > 0)
available += cid[i][1]
if(coinsValue[cid[i][0]] > troco)
cid[i].splice(0)
}
输出为:
[ [ 'PENNY', 1.01 ],
[ 'NICKEL', 2.05 ],
[ 'DIME', 3.1 ],
[ 'QUARTER', 4.25 ],
[ 'ONE', 90 ],
[ 'FIVE', 55 ],
[ 'TEN', 20 ],
[ 'TWENTY', 60 ],
[] /// removed elements from this array, but not the array itself ]
如您所见,符合条件的元素已被删除,我仍然留下一个空数组。但是我想完全删除它!
有什么帮助吗?
您是从子数组中删除项目,而不是从数组本身中删除项目。
要从顶部数组中删除项目,您应该这样做:
cid.splice(i, 1)
而不是 cid[i].splice(0)
for(let i = 0; i < cid.length; i++) {
if (coinsValue[cid[i][0]] < troco && cid[i][1] > 0) {
available += cid[i][1];
} else if (coinsValue[cid[i][0]] > troco) {
cid.splice(i, 1);
}
}