gpt4 book ai didi

javascript - 我的 'for' 循环未在 JavaScript 中运行(使用 Node.js 运行 JavaScript 文件)

转载 作者:行者123 更新时间:2023-12-03 00:50:27 26 4
gpt4 key购买 nike

考虑:

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 循环外部时,它会运行。该代码应该循环遍历每个对象的每个属性并对值进行平均。

最佳答案

您共享的代码存在问题:

  1. 循环条件不正确。您已使用>而它应该是< .

  2. 您尚未初始化answers数组,但您正在使用 +=添加current valueprevious value .

  3. 您正在访问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/

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