繁体   English   中英

如果名称是 int,则无法访问数组

[英]cannot access the array if the name is an int

基本上我有一个包含两个对象数组的对象。 我有一个变量“valuesToDelete”,它是一个包含要删除的“ID”号的数组。 我的代码现在可以工作了,因为我将两个对象数组的名称重命名为“famille1”和“famille2”。 然而,这两个数组最初被命名为“3456”和“2345”。 当它是一个数字时,我似乎无法访问该数组。

const clientData = {
 famille1: [
{ ID: 1, name: "Anas", age: 23 },
{ ID: 2, name: "Marie", age: 21 },
{ ID: 3, name: "Mathilde", age: 24 },
{ ID: 4, name: "Mathilde", age: 24 },
{ ID: 5, name: "Mathilde", age: 24 },
{ ID: 6, name: "Mathilde", age: 24 },
{ ID: 7, name: "Mathilde", age: 24 },
{ ID: 8, name: "Mathilde", age: 24 }
],
famille2: [
{ ID: 9, name: "Eric", age: 15 },
{ ID: 10, name: "Alexandre", age: 61 },
{ ID: 11, name: "Cedric", age: 45 }
]
},
 valuesToDelete = [2, 4, 8, 7, 10, 11],
 key = "ID",
 filterHandler = (o) => !valuesToDelete.includes(o[key]);

 clientData.famille1 = clientData.famille1.filter(filterHandler);
 clientData.famille2 = clientData.famille2.filter(filterHandler)

console.log(clientData);           

JavaScript 中的变量不能以数字开头。 这是您会收到的语法错误:

标识符或关键字不能紧跟数字文字。

这可以通过在变量名称前加上前缀来解决,例如f3456f2345

或者,您可以将对象命名为字符串,因为这是允许的。 "3456": [{...}]"2345": [{...}]这样的东西会起作用,你可以在你的代码中使用clientData["3456"]而不是clientData."3456"来访问它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM