Javascript 访问JS对象内的数组并通过索引从中删除项
假设我有一个对象,其中的值是数组,如下所示:Javascript 访问JS对象内的数组并通过索引从中删除项,javascript,arrays,object,Javascript,Arrays,Object,假设我有一个对象,其中的值是数组,如下所示: { 123456: ['apple','orange','banana'], 987654: ['dog','cat','mouse'], 112233: ['car','truck','bike'] } 我可以访问两个变量,一个是分配了键的itemID,另一个是要删除的项的数组索引。 比如说 itemID = 987654; n = 1; 所以我想要得到的结果是 { 123456: ['apple','orange','bana
{
123456: ['apple','orange','banana'],
987654: ['dog','cat','mouse'],
112233: ['car','truck','bike']
}
我可以访问两个变量,一个是分配了键的itemID,另一个是要删除的项的数组索引。
比如说
itemID = 987654;
n = 1;
所以我想要得到的结果是
{
123456: ['apple','orange','banana'],
987654: ['dog','mouse'],
112233: ['car','truck','bike']
}
我需要写一个函数
removeItem(itemID, n) {
}
最好的方法是什么?可以使用
splice
方法:
const removeItem = (itemID, n) => {
if (!foo[itemID])
return;
foo[itemID].splice(n,1);
return foo;
}
例如:
var foo={
123456:[“苹果”、“橘子”、“香蕉”],
987654:[“狗”、“猫”、“老鼠”],
112233:[“汽车”、“卡车”、“自行车”]
};
const removietem=(itemID,n)=>{
如果(!foo[itemID])
返回;
foo[itemID].拼接(n,1);
返回foo;
}
日志(removietem(987654,1))代码>以下是解决方案
var obj = {
123456: ['apple','orange','banana'],
987654: ['dog','cat','mouse'],
112233: ['car','truck','bike']
}
function removeItem(itemID, n) {
if(!obj[itemID]) {
return;
}
obj[itemID].splice(n, 1);
}
removeItem(987654, 1);
console.log(obj);
我会补充一些解释,
按键访问对象:obj[key]
Array.splice在这种情况下,
意思是(拼接(n,1))-取索引n处的项目,并从该索引中恰好删除一个项目
另请注意:
访问对象时,键应为字符串
所以我要换衣服
removietem(987654,1)代码>
致:
removietem('987654',1)代码>
它将以两种方式工作。尝试以下方法:
var obj = /*ur obj*/
var itemID = 987654;
var n = 1;
removeItem(itemID, n) {
let str = obj[itemID][n];
this.obj[itemID] = obj[itemID].filter(item => item != str);
}
var数据={
123456:[“苹果”、“橘子”、“香蕉”],
987654:[“狗”、“猫”、“老鼠”],
112233:[“汽车”、“卡车”、“自行车”]
};
函数removeItem(itemID,n){
数据[itemID]=数据[itemID]。筛选器(函数(值、索引、数组){
返回索引!=n;
});
document.getElementById(“demo”).innerHTML=JSON.stringify(数据);
}
请添加您尝试过的内容。我删除了我的答案,因为您的答案具有更好的结构和代码段,而此答案可能是正确的。只有代码的答案很少有帮助。请评论您的代码,并解释此代码如何解决问题。