记录一些知识和例子,巩固下基础,进阶下细节
在前端中,对象通常是指 JavaScript 对象,它是一种复合值类型,可以用于存储多个值(属性)。
对象是一组 键—值 对的集合。每个键都是一个字符串(或 ES6 中的 Symbol 类型),每个值可以是任何类型,包括数字、字符串、布尔值、null、undefined,甚至是另一个对象或数组。
我们可以通过直接声明对象,或者通过构造函数来创建对象。
对象中的属性既可以使用点语法访问(如:person.name
),也可以使用方括号语法访问(如:person['name']
),其中前者在属性名符合标识符规范时更加常用。(注意,写对象需要对应一下数组的各种语法,有时候经常搞混)
比如说:
let arr = { a:1,b:2 }//定义一个对象
打印arr.a 输出 1
打印arr['a'] 输出1
然而当你数组这样写let array = [ a:1,b:2 ],就是一个错误的语法
但是我们可以这样写,因为数组是一种有序的数据结构
let array = [1, 2];
当arr = {} array = []
arr[1] = '111'
打印出来的arr = {1: '111'}
array[1] = '111'
这样打印出来的array = [空白, '111']
因为这句代码的意思是将数组 array 的索引为 1 的元素的值设置为 '111'
例如,下面的代码定义了一个 person 对象,包含了 name、age、gender 三个属性:
const person = {
name: 'Alice',
age: 28,
gender: 'female'
};
可以通过以下方式访问 person 对象中的属性值:
console.log(person.name) // 输出 "Alice"
console.log(person.age) // 输出 28
console.log(person['gender']) // 输出 "female"
也可以通过以下方式修改对象属性:
person.age = 29;
console.log(person.age) // 输出 29
在 JavaScript 中,对象是一种非常重要的基础类型,它可以用于存储和处理各种数据。在开发过程中,我们经常要使用对象来表示和操作复杂的数据结构,例如表单数据、API 响应等等。
data: {0: '数据0',1: '数据1',2: '数据2'}和data: {'0': '数据0','1': '数据1','2': '数据2'}的区别?
这两个表示方式在功能上是等价的,它们都是表示具有数字索引的对象。然而,它们在语法上稍有不同。
在第一个表示方式中,属性名没有使用引号,而是直接使用数字。这是因为在 JavaScript 中,对象的属性名可以是字符串或符号,但如果属性名是一个有效的标识符(如数字),则可以省略引号。因此,0
、1
和 2
在这里被解释为数字属性名。
在第二个表示方式中,属性名被放在引号中,即使用了字符串作为属性名。这是因为在字符串中,数字可以是有效的字符,所以它们被解释为字符串属性名。
综上所述,这两种表示方式的区别在于属性名的类型,一个是数字类型,一个是字符串类型。在访问属性时,你可以使用 data[0]
或 data['0']
来获取对应的值,两者都将返回 "数据0"。
对于data: {0: '成功导入1条数据', 3: '成功导入2条数据'}这样的对象,怎样提取键和值组成新的数组?
const data = {0: '成功导入1条数据', 3: '成功导入2条数据'};
const dataArray = Object.entries(data).map(([key, value]) => {
return { id: key, message: value };
});
console.log(dataArray);
在这个示例代码中,我们使用 Object.entries()
方法获取对象 data
的键值对数组,得到 [['0', '成功导入1条数据'], ['3', '成功导入2条数据']]
。然后,使用 Array.map()
方法对每个键值对进行转换,将其转换为 { id: key, message: value }
的形式,得到 [{id: '0', message: '成功导入1条数据'}, {id: '3', message: '成功导入2条数据'}]
。
在转换后的数组中,每个对象包含一个 id
属性和一个 message
属性,分别对应原对象的键和值。
data: {第一个: 1, 第二个: 2}怎样分别提取键和值的集合?
const keys = Object.keys(data);
const values = Object.values(data);
counts = {6: 1, 9: 2}单独取值:
count[0] = undefined
count[6] = 1
一个转换的列子:
{
HSE管理安全: {1: 0, 2: 1},
测试类型: {1: 3, 2: 0}
}
怎样变成
source:
[
['product', '一般', '重要'],
['HSE管理安全',0, 1],
['测试类型', 3, 0]
]的格式
答案:
const data = {
HSE管理安全: { 1: 0, 2: 1 },
测试类型: { 1: 3, 2: 0 },
}
const source = [['product', '一般', '重要']]
for (const key in data) {
const row = [key]
for (const value of Object.values(data[key])) {
row.push(value)
}
source.push(row)
}
console.log(source)