Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript中的对象数组_Javascript_Html_Css - Fatal编程技术网

使用JavaScript中的对象数组

使用JavaScript中的对象数组,javascript,html,css,Javascript,Html,Css,问题:开发一个包含1000个对象的数组(属性名称和编号如图所示) 我们需要一个函数来转换每个对象,使名称大写 值是原始值的5倍,并存储到较高的 变量类似地,另一个函数将每个对象转换为 名称为小写,值为原始值的3倍,存储此 进入小变量 我们需要一个函数,它将每个对象置于更高的位置,并找到所有对象 均匀地分割成一小块的物体。示例:30英寸 高一点的物体被6等分 2的输出必须是一个较大数字的数组,并且在每个 对象应该有got(这是对象内部的一个变量),它将包含每一点 平均分割较高值的对象 我的代码:

问题:开发一个包含1000个对象的数组(属性名称和编号如图所示)

  • 我们需要一个函数来转换每个对象,使名称大写 值是原始值的5倍,并存储到较高的 变量类似地,另一个函数将每个对象转换为 名称为小写,值为原始值的3倍,存储此 进入小变量
  • 我们需要一个函数,它将每个对象置于更高的位置,并找到所有对象 均匀地分割成一小块的物体。示例:30英寸 高一点的物体被6等分
  • 2的输出必须是一个较大数字的数组,并且在每个 对象应该有
    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
    th
    higher
    编号的名称,您可以使用
    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
    th
    higher
    编号的名称,您可以使用
    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