JavaScript 记录和元组
在本文中,我们要了解关于一个新的原始数据结构记录和元组。这些数据结构在官方的JavaScript中并不可用,因为这只是提案,希望将其添加到JavaScript中。
记录和元组都是原始数据类型,我们只能使用原始数据类型来创建记录和元组,所以在这些数据结构中不能使用对象和数组。让我们仔细观察记录和元组。
记录: 你可以将记录视为对象,因为记录的语法与对象相同,我们只需在大括号之前添加“#”,如代码所示。我们还可以像使用对象一样访问记录的键。
Javascript
const user = #{
name: "Adam",
age: 21,
}
// We can access keys like Object
console.log(user.name)
console.log(user.age)
我们不能将数组或对象分配给记录的键。
Javascript
// This is not valid for Record
const user = #{
name: "Adam",
age: 21,
hobbies: ['Reading', 'Playing', 'Singing']
}
我们可以在Records中使用扩展运算符,我们还可以在Records中使用Object函数。
Javascript
const user = #{
name: "Adam",
age: 21,
}
// Record destructuring is valid
const newUser = {...user}
// Object functions works with Record
console.log(Object.key(user)) //Output: ['name', 'age']
元组: 是的,你可以把元组想象成数组,因为元组的语法与数组也完全相同,我们只需在方括号前面加上“#”,如代码所示。我们也可以像使用对象一样访问记录的键。
JavaScript
const users = #['Ram', 'Shyam', 'Gopal']
// We can access index like Array
console.log(users[1]) // 'Shyam'
console.log(users[2]) // 'Gopal'
这里和Record一样的情况也存在,我们无法将数组或对象分配给Record的键。
Javascript
// This is not valid for Tuple
const user = #[
{
name: 'Ram',
age: 21
},
{
name: 'Shyam',
age: 22
}
]
我们可以在元组中使用展开运算符,也可以使用数组函数来处理元组。
Javascript
const users = ['Ram', 'Shyam', 'Gopal']
const newUsers = [...users]
console.log(newUsers) // ['Ram', 'Shyam', 'Gopal']
// Array functions works with Tuple
console.log(users.map(user => user + 'abc'))
// Output: ['Ram abc', 'Shyam abc', 'Gopal abc']
极客教程