记录和元组——JavaScript 中的新数据结构
在本文中,我们将了解/了解一种新的原始数据结构 Record 和 Tuple。这些数据结构在官方 JavaScript 中不可用,因为这些只是添加到 Javascript 中的建议。
Records 和 Tuples 都是原始数据类型,我们只能使用原始数据类型来创建 Records 和 Tuples,所以我们不能在这些数据结构中使用 Objects 和 Arrays。让我们仔细看看 Record 和 Tuple。
Records:你可以把Record看成是Object,因为Record的语法和Object是一样的,我们只是在花括号前加上“#”,如代码所示。我们也可以像使用对象一样访问 Record 的键。
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']
}
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'
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']
我们不能将 Array 或 Object 分配给 Record 的键。
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']
元组:是的,您可以将元组视为数组,因为元组的语法也与数组相同,我们只是在方括号前添加“#”,如代码所示。我们也可以像使用对象一样访问 Record 的键。
Javascript
const users = #['Ram', 'Shyam', 'Gopal']
// We can access index like Array
console.log(users[1]) // 'Shyam'
console.log(users[2]) // 'Gopal'
这里也是和 Record 一样的条件,我们不能将 Array 或 Object 分配给 Record 的 key。
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']