📜  记录和元组——JavaScript 中的新数据结构

📅  最后修改于: 2022-05-13 01:56:15.667000             🧑  作者: Mango

记录和元组——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']