gpt4 book ai didi

javascript - 如何使用push方法或类似方法在javascript中构造一个对象而不是数组对象

转载 作者:行者123 更新时间:2023-12-01 02:10:18 25 4
gpt4 key购买 nike

我正在尝试通过数组的push方法构建一个javascript对象。里面有一些循环来填充值,但结果是一个矩阵。我知道它也是一个对象,但我喜欢使用点表示法来使用结果对象。如何做到这一点并实现一个对象,而不是一个数组

    let person = [{
age: 0,
name: "",
second_name: "",
objeto2: {
name2: "",
second_name2: ""
}
}]
for (let i = 1; i <= 3; i++) {
person.push({ age: i, name: i + 1, second_name: "segundo", objeto2: { name2: "xxsxs", second_name2: "adfa" } })
};

结果:

[ { age: 0,
name: '',
second_name: '',
objeto2: { name2: '', second_name2: '' } },
{ age: 1,
name: 2,
second_name: 'segundo',
objeto2: { name2: 'xxsxs', second_name2: 'adfa' } },
{ age: 2,
name: 3,
second_name: 'segundo',
objeto2: { name2: 'xxsxs', second_name2: 'adfa' } },
{ age: 3,
name: 4,
second_name: 'segundo',
objeto2: { name2: 'xxsxs', second_name2: 'adfa' } } ]

最佳答案

我认为这就是您正在寻找的:

let person = {
"$0": {age:0, name:"", alias:"", "$1":{name:"", alias:""}}
};
for (let i=0; i<3; i++) {
let j = Object.keys(person).length;
person["$"+j] = {age:j, name:j+1, alias:"segundo", "$1":{name:"xxsxs", alias:"adfa"}};
}

console.log(person);
console.log(person.$2.$1.name);
console.log(person.$3.alias);
console.log(person.$3.$1.alias);
代码笔:https://codepen.io/anon/pen/qoGoKp?editors=0012

  • 在对象中,属性始终需要一个键( $1$2 等)。
    这些键必须始终是字符串,数字将自动转换为字符串:see this link (在“属性名称”下)。
  • 由于上述原因,并且特定于点表示法本身,you cannot use only a number使用点表示法时访问对象的属性。使用person.2.1.name不可能。因此我在数字前面加上 $ ,所以变成person.$2.$1.name ,这是可能的。
    您可以更改$任何其他有效字符,例如 _ ,但我发现这是最具可读性的。
  • 为了能够将下一个属性“推送”到现有对象的末尾,我使用 Object.keys(person).length 获取下一个可用的索引号。
    请注意,在您的情况下,您还可以使用整数 i来自 for 循环,但是 Object.keys().length最类似于 Array.push()方法。
    此外,如果稍后您需要添加另外几个属性,则无需更改 for 循环来更正索引号。现在,3i<3;代表您想要添加到对象的属性数量,因此如果稍后您想要添加另外 5 个属性,您的 for 循环将像 for (let i=0; i<5; i++) { 一样开始其他一切都保持不变。您甚至可以为其创建一个函数以使其更加灵活:

    function addPersons(n) {
    for (let i=0; i<n; i++) {
    let j = Object.keys(person).length;
    person["$"+j] = {age:j, name:j+1, alias:"segundo", "$1":{name:"xxsxs", alias:"adfa"}};
    }
    }
    addPersons(3);
    addPersons(5);

关于javascript - 如何使用push方法或类似方法在javascript中构造一个对象而不是数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49804133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com