考虑:
let data = [{
a: 93,
b: 23,
c: 56
},
{
a: 96,
b: 14,
c: 45
},
{
a: 83,
b: 5,
c: 65
},
{
a: 99,
b: 16,
c: 47
},
{
a: 78,
b: 31,
c: 59
},
]
let isdata = {
a: 50,
b: 34,
c: 32
}
let prop_names = Object.keys(data[1])
console.log(prop_names)
let answers = []
for (let q = 0; q > prop_names.length; q++) {
console.log(answers)
for (let i = 0; i > data.length; i++) {
answers[q] += data[i].propnames[q]
}
}
for (let x = 0; x > answers.length; x++) {
answers[x] /= data.length
}
console.log(answers)
正如您从代码片段中可以看到的那样,当我 console.log 在 for
循环内应答时,它不会运行,但在 for
循环外部时,它会运行。该代码应该循环遍历每个对象的每个属性并对值进行平均。
最佳答案
您共享的代码存在问题:
循环条件不正确。您已使用
>
而它应该是<
.您尚未初始化
answers
数组,但您正在使用+=
添加current value
与previous value
.您正在访问
data
数组不正确。正确的语法是data[i][props_names[q]]
。看看the bracket notation to access an object property
可行的解决方案如下:
var data = [{
a: 93,
b: 23,
c: 56
},
{
a: 96,
b: 14,
c: 45
},
{
a: 83,
b: 5,
c: 65
},
{
a: 99,
b: 16,
c: 47
},
{
a: 78,
b: 31,
c: 59
},
]
var isdata = {
a: 50,
b: 34,
c: 32
}
var prop_names = Object.keys(data[1])
console.log(prop_names)
var answers = Array.from(prop_names, () => 0);
for (var q = 0; q < prop_names.length; q++) {
for (var i = 0; i < data.length; i++) {
answers[q] += data[i][prop_names[q]]
}
}
for (var x = 0; x < answers.length; x++) {
answers[x] /= data.length
}
console.log(answers)
关于javascript - 我的 'for' 循环未在 JavaScript 中运行(使用 Node.js 运行 JavaScript 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070109/