2 回答
TA贡献2065条经验 获得超13个赞
如果 中的索引为负数splice,则将从末尾开始那么多元素。因此x.splice(-1, 1)从末尾开始一个元素x并删除一个元素。
const fs = require ('fs');
fs.readFile('./test/test2.txt', 'utf-8', function(err, data) {
if (err) throw error;
let dataArray = data.split('\n');
const searchKeyword = 'UserJerome';
let lastIndex = -1;
for (let index=0; index<dataArray.length; index++) {
if (dataArray[index].includes(searchKeyword)) {
lastIndex = index;
break;
}
}
if (lastIndex !== -1) { // <-----------------------------------
dataArray.splice(lastIndex, 1);
}
const updatedData = dataArray.join('\n');
fs.writeFile('./test/test2.txt', updatedData, (err) => {
if (err) throw err;
console.log ('Successfully updated the file data');
});
});
TA贡献1810条经验 获得超4个赞
您可以只使用向后for loop(这样我们在循环时不会弄乱数组的顺序)并执行slice其中的方法。
const fs = require ('fs');
fs.readFile('./test/test2.txt', 'utf-8', function(err, data) {
if (err) throw error;
let dataArray = data.split('\n');
const searchKeyword = 'UserJerome';
for (let index = dataArray.length - 1; index >= 0; index--) {
if (dataArray[index].includes(searchKeyword)) {
dataArray.splice(index, 1);
}
}
const updatedData = dataArray.join('\n');
fs.writeFile('./test/test2.txt', updatedData, (err) => {
if (err) throw err;
console.log ('Successfully updated the file data');
});
});
添加回答
举报