使用JavaScript中的对象数组
问题:开发一个包含1000个对象的数组(属性名称和编号如图所示)使用JavaScript中的对象数组,javascript,html,css,Javascript,Html,Css,问题:开发一个包含1000个对象的数组(属性名称和编号如图所示) 我们需要一个函数来转换每个对象,使名称大写 值是原始值的5倍,并存储到较高的 变量类似地,另一个函数将每个对象转换为 名称为小写,值为原始值的3倍,存储此 进入小变量 我们需要一个函数,它将每个对象置于更高的位置,并找到所有对象 均匀地分割成一小块的物体。示例:30英寸 高一点的物体被6等分 2的输出必须是一个较大数字的数组,并且在每个 对象应该有got(这是对象内部的一个变量),它将包含每一点 平均分割较高值的对象 我的代码:
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>
var n=1000;
var样本=[];
对于(var i=0;i
对象数组已创建,并且符合问题的预期/要求,但是更高版本的转换器
功能不起作用,第三个问题应如何处理?一些想法:
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;
(变量i=0;i
higher.name='John'+i;
较高值=i*5;
因此,第二行甚至没有在循环中执行,您需要:
for (var i = 0; i < n; i++) {
higher.name = 'John'+i;
higher.value = i*5;
}
(变量i=0;i{
higher.name='John'+i;
较高值=i*5;
}
5) higher.name
没有什么意义,因为higher
是一个数组,您要更改i
thhigher
编号的名称,您可以使用higher[i]。name
6) “John1”
不在caps中,您要在其上调用toUpperCase
((“John1”).toUpperCase()
)
第三个问题应该怎么做
我想修正你的代码,做第二个问题就足够了
你可以继续阅读:
一些想法:
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;
(变量i=0;i
higher.name='John'+i;
较高值=i*5;
因此,第二行甚至没有在循环中执行,您需要:
for (var i = 0; i < n; i++) {
higher.name = 'John'+i;
higher.value = i*5;
}
(变量i=0;i{
higher.name='John'+i;
较高值=i*5;
}
5) higher.name
没有什么意义,因为higher
是一个数组,您要更改i
thhigher
编号的名称,您可以使用higher[i]。name
6) “John1”
不在caps中,您要在其上调用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;
}
var n=1000;
var样本=[];
对于(var i=0;i
您还应该尝试以更结构化的方式思考您的代码。我建议为每个问题编写单独的函数,并为它们指定有意义的名称。也许是这样的:
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;
}
var n=1000;
var样本=[];
对于(var i=0;i