gpt4 book ai didi

javascript - 无法设置未定义的属性 '01'

转载 作者:行者123 更新时间:2023-12-03 06:45:15 26 4
gpt4 key购买 nike

我有这个代码:

var _ = require('underscore');

var myObj = [

{'name': 'Mike', 'number' : 'b1' , 'level' : 0 },
{'name': 'Tom', 'number' : 'b2' , 'level' : 0 }
];

var result = _.map(myObj, _.invert);

现在,结果是:

[ { '0': 'level', Mike: 'name', b1: 'number' },
{ '0': 'level', Tom: 'name', b2: 'number' } ]

好的,就到这里。

然后,我向结果添加一些部分并尝试填充它们:

result = result,
parts = {'levels': {}, 'names': {}, 'numbers': {}};

result.forEach(function(obj,i){

Object.keys(obj).forEach(function(k) {

parts[k +"s"][k +(i+1)] = obj[k];
});
});

但我收到:

TypeError: Cannot set property '01' of undefined

parts[k +"s"][k +(i+1)] = obj[k];

请注意,如果我不使用 invert ,代码运行不会出现问题。

最佳答案

您可能想要更改此设置:

result.forEach(function(obj,i){
Object.keys(obj).forEach(function(k) {
parts[k +"s"][k +(i+1)] = obj[k];
});
});

对此:

result.forEach(function(obj, i){
Object.keys(obj).forEach(function(k) {
let box = parts[obj[k] + 's'][k];
if(box) {
if(Array.isArray(box)) {
box.push(obj[k] + (i + 1));
} else {
parts[obj[k] + 's'][k] = [box, parts[obj[k] + 's'][k].slice(0, -1) + (i + 1)];
}
return;
}

parts[obj[k] + 's'][k] = obj[k] + (i + 1);
});
});

关于javascript - 无法设置未定义的属性 '01',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37767327/

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