javascript - 我的“for”循环没有在 JavaScript 中运行(使用 Node.js 运行 JavaScript 文件)
问题描述
考虑:
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)
正如您从代码片段中可以看到的那样,当我在for
循环内进行 console.log 回答时,它不会运行,但在for
循环外它会运行。这段代码应该循环遍历每个对象的每个属性并对值进行平均。
解决方案
您共享的代码的问题:
循环条件不正确。你已经使用
>
了,它应该是<
。您尚未初始化
answers
数组,但您正在使用+=
添加current value
withprevious value
。您访问
data
数组不正确。正确的语法是data[i][props_names[q]]
. 查看括号符号以访问对象属性
一个可行的解决方案如下:
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)
推荐阅读
- amazon-web-services - 从 Amazon S3 读取文件内容:任务已取消错误
- java - Spring data jpa 不适用于自动配置的 entityManagerFactory
- excel - 按日期计算的 SUMIFS 公式
- python - Python 字符生成
- python - 如何在 Python 中安装包
- groovy - 使用插值将字符串添加到带有变量的 groovy 映射
- angular - Youtube Iframe 不刷新就无法工作
- java - 如何使用 json 文件作为正文执行发布请求
- python - 比较 Pandas Python 中的两个表
- android - 格式化电子邮件以获得最佳通知外观