Javascript 从具有不同键的数组中按值删除项
我试图创建一个函数,从JSON文件中删除一个单词 功能:Javascript 从具有不同键的数组中按值删除项,javascript,json,Javascript,Json,我试图创建一个函数,从JSON文件中删除一个单词 功能: function removeword(lang,word) { var farr = []; var count = 0; fs.readFile('./dictionary.json', 'utf8', (err, jsonString) => { var items = JSON.parse(jsonString); for (var i = 0; i < items.length; i
function removeword(lang,word) {
var farr = [];
var count = 0;
fs.readFile('./dictionary.json', 'utf8', (err, jsonString) => {
var items = JSON.parse(jsonString);
for (var i = 0; i < items.length; i++) {
console.log(items[lang][i]);
if (word === items[lang][i]) {
items[lang].splice(i, 1);
}
}
console.log(items);
fs.writeFile("./dictionary.json", JSON.stringify(items), function(err){
if (err) throw err;
console.log('Done!');
});
});
}
通过调用removeword('pt','macaco'),我希望:
{"en":["moon","crazy"],"pt":["macarrão"],"es":["hola"]}
对于给定的键,您可以对项数组调用.filter()
,然后传递。对于数组中任何不是值的元素,可以通过返回true
(v!==value
)来保留它,否则,可以删除它(通过返回false):
const items={“en”:[“moon”、“疯狂”],“pt”:[“macaco”、“macarrão”],“es”:[“hola”]};
函数removeword(对象、键、值){
obj[key]=obj[key]。过滤器(v=>v!==value);
}
移除单词(项目“pt”、“macaco”);
console.log(项目);//{“en”:[“moon”,“crazy”],“pt”:[“macarrão”],“es”:[“hola”]}
这是一个对象一个对象没有。长度
。还有,lang
从哪里来?@Ivan给定数组,我想传递一个特定的单词并从数组中删除。@NickParsons我做了一些编辑,现在应该更清楚了,可以重新打开吗?@IgorO现在看起来好多了-现在更容易理解了谢谢@Nick Parsons,我使用了第一个解决方案。filter@IgorO不用担心:)
{"en":["moon","crazy"],"pt":["macarrão"],"es":["hola"]}