js基础知识 -01

99 阅读1分钟
JavaScript 中,对象的键(key)必须是字符串或者符号(Symbol)类型。如果你尝试 将数组作为键使用,JavaScript 会将数组转换成字符串类型。这里有一个例子来说明这个概念
    let obj = {};
    let arr = [1, 2, 3];

    // 使用数组作为对象的键
    obj[arr] = '数组作为键';

    // 检查对象的内容
    console.log(obj); // 输出:{ '1,2,3': '数组作为键' }
在这个例子中,我们将数组 `[1, 2, 3]` 作为对象 `obj` 的键。然而,由于对象的键只能是字符串或符号,所以数组 `[1, 2, 3]` 被转换成了字符串 `'1,2,3'`。因此,实际上对象 `obj` 的键是字符串 `'1,2,3'`,而不是数组 `[1, 2, 3]`。

所以在 JavaScript 中,你不能直接将数组作为对象的键,而需要将数组转换成字符串或者符号类型。如果你希望保留数组的结构,可以考虑将数组序列化成 JSON 字符串:
    let obj = {};
    let arr = [1, 2, 3];

    // 将数组序列化成 JSON 字符串
    let jsonArr = JSON.stringify(arr);

    // 使用 JSON 字符串作为对象的键
    obj[jsonArr] = '数组作为键';

    // 检查对象的内容
    console.log(obj); // 输出:{ '[1,2,3]': '数组作为键' }

在这个例子中,我们使用 `JSON.stringify()` 函数将数组 `[1, 2, 3]` 序列化成 JSON 字符串 `'[1,2,3]'`,然后将其作为对象 `obj` 的键。这样你就可以在需要的时候使用 `JSON.parse()` 函数将 JSON 字符串还原成数组。