如何创建用户提供的数字数组并将其映射到数字的多维数据集数组?

时间:2014-10-31 03:50:43

标签: javascript arrays

我的应用程序是让用户提供一组数字。用户确定他们将提供多少个数字,然后我相应地提示他们。我想使用函数创建提供的输入数字的数组。然后我想使用另一个函数来计算每个数字的立方体,并将它们放在一个新的数组中。我发现很难创建多维数据集数组。任何人都可以帮我这个吗?

var BR = "<br />";
var ES = " ";
/********* FUNCTIONS *********/
// Enter any functions in this region

function fncube(c) {
    var result = 1;
    var tro;
    for (var j = 0; j < c.length; j++) {
        result = c[j] * c[j] * c[j];
        tro = new Array(result);
    }
    return tro;
}

function displayarray(d) {
    
    var mm = new Array();
    for (var m = 1; m < d.length; m++) {
        mm = mm.push[m];
        
    }
    return mm;
    
}

/********* MAIN *********/
function main() {
    
    var userinput = new Array();
    //var m = new Array();
    var usersize;
    var tilavg;
    
    usersize = parseInt(window.prompt("Enter number of cubes you would like to make: "));
    
    for (var i = 0; i < usersize; i++) {
        userinput[i] = parseInt(window.prompt("Enter your number #: " + (i + 1)));
        
        document.writeln(BR + "Number you entered " + " for making cube is : " + userinput[i] + ES)
        document.writeln(BR + "The cube is " + fncube(userinput) + ES);
        var cc = fncube(userinput);
        xx = new Array(cc);
        //var z = displayarray(cc);	  
        
    }
    document.writeln(BR + "The array of input values is: " + cc);
    document.writeln(BR + "The array of cubes is: " + xx);
}
main();

1 个答案:

答案 0 :(得分:0)

JavaScript Array map方法本身支持将数组转换为另一个相同大小的数组,其中每个元素的转换函数相同。如果将转换函数定义为Cubing操作(在JS中Math.pow(x, 3)),那么您可以轻松地从一个数组转换为另一个数组。

考虑以下示例。我使用jQuery的map版本将input元素转换为它们的值数组,然后使用JS map方法将该数组转换为包含多维数据集的数组所有的价值观。试试看。一旦了解了map的工作原理,您就应该能够调整它以适合您的用例。

&#13;
&#13;
$(function() {
    $("input").change(function() {
        var nums = $("input").map(function() {
            return this.value || undefined;
        }).get();

        $("#nums").text(nums);
        $("#cubes").text(nums.map(function(i) {
            return Math.pow(i, 3);
        }));
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h4>Enter four numbers</h4>
<input /><br />
<input /><br />
<input /><br />
<input />
<div id="nums"></div>
<div id="cubes"></div>
&#13;
&#13;
&#13;