[英]Working with array of objects in JavaScript
问题:开发一个包含1000个对象的数组(具有属性名称和编号,如图所示)。
got
(对象内部的变量),该对象将包含每个均等地划分较高数的 小对象。 我的代码:
<!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()
)
还有第三个问题应该怎么做?
我想修正您的代码并做第二个问题就足够了。
您可以继续阅读:
您还应该在这里尝试以更结构化的方式考虑您的代码。 我建议为每个问题编写单独的函数并给它们起有意义的名字。 也许像下面这样:
var n = 1000;
var sample = [];
for (var i = 0; i < n; i++) sample.push({
name: 'John' + i,
value: i
});
console.log(sample);
var higher = convertToHigher(sample);
var little = convertToLittle(sample);
var higherWithDivisors = findAllDivisors(higher, little);
function convertToHigher(arr) {
var newArr = [];
// TODO: iterate through each entry in arr, create a new modified object
// with a higher value and add it to newArr
return newArr;
}
function convertToLittle(arr) {
var newArr = [];
// TODO: iterate through each entry in arr, create a new modified object
// with a lower value and add it to newArr
return newArr;
}
function findAllDivisors(arr1, arr2) {
var newArr = [];
// TODO: solve problem 3 here
return newArr;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.