问题:开发一个包含 1000 个对象的数组(具有如图所示的属性名称和编号)。
- 我们需要一个函数来转换每个对象,使名称大写 并且值是原始值的 5 倍并存储到更高 多变的。类似地,另一个函数将每个对象转换为 name是小写的,value是原来的3倍,存储这个 进入 little 变量。
- 我们需要一个函数来获取higher中的每个对象并找到所有 little 中均匀划分的对象。示例:30 英寸 更高的物体在小中被6均分。
- 2 的输出必须是更高 数的数组,并且在每个
object 应该有
got
(这是对象内部的一个变量),它将包含每个 little 均匀划分较高的对象。
我的代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<script>
var n = 1000;
var sample = [];
for (var i = 0; i < n; i++) sample.push({
name:'John' + i,
value: i
});
console.log(sample);
function Converter() {
var n = 1000;
var higher = sample;
for (var i = 0; i < n; i++) higher.name = 'John' + i;
higher.value = i * 5;
console.log(higher);
}
</script>
</body>
</html>
对象数组已创建,并且符合问题的预期/要求,但是,higher
的 converter
函数不起作用,第三个应该如何问题做完了吗?
最佳答案
一些想法:
1) 只有构造函数应该以大写字母开头,按照惯例函数应该是驼峰式的,所以它应该是 converter
2) 你不调用 converter()
所以它永远不会被执行
3) 确保正确缩进代码 var n
和 var sample
应该处于相同的深度。
4) 如果您在 if
或 for
之后省略括号,则只有以下语句进入分支,因此在您的情况下您会这样做:
for (var i = 0; i < n; i++)
higher.name = 'John'+i;
higher.value = i*5;
所以第二行甚至没有在循环中执行,你想要:
for (var i = 0; i < n; i++) {
higher.name = 'John'+i;
higher.value = i*5;
}
5) higher.name
没什么意义,因为 higher
是一个数组,你想更改第 i
个 的名称>higher
数字,你可以用 higher[i].name
6) "John1"
没有大写,您想对其调用 toUpperCase
(("John1").toUpperCase()
)
also how should the 3rd question be done?
我想今天修复你的代码并完成第二个问题就足够了。
您可以继续阅读:
关于javascript - 在 JavaScript 中使用对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52615973/