Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 在react js中创建动态数组_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript 在react js中创建动态数组

Javascript 在react js中创建动态数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我试图通过获取用户输入动态创建一个数组范围作为参数提供。当我尝试console.log()它记录正确的范围值时,但是当我尝试在const a=Array(…Array(range.keys())中使用它时它没有将范围作为正确的参数。当我硬编码一个数字而不是范围时,它会给出一个正确的数组。这里会有什么问题 import React from 'react'; import { Button, TextField } from '@material-ui/core'; import { useSta

我试图通过获取用户输入动态创建一个数组<代码>范围作为参数提供。当我尝试
console.log()
它记录正确的范围值时,但是当我尝试在
const a=Array(…Array(range.keys())中使用它时它没有将范围作为正确的参数。当我硬编码一个数字而不是范围时,它会给出一个正确的数组。这里会有什么问题

import React from 'react';
import { Button, TextField } from '@material-ui/core';
import { useState } from 'react';

export default  function handleSumOfMultipliers(multiplier, range) {
    console.log("range" + range)
    
    const a = Array(...Array(range).keys());
    console.log(a);

    return (
        <div></div>
    );
};
从“React”导入React;
从“@material ui/core”导入{按钮,TextField};
从“react”导入{useState};
导出默认函数HandleSumofMulti钳子(乘数,范围){
console.log(“范围”+范围)
常量a=数组(…数组(范围).keys());
控制台日志(a);
返回(
);
};

我猜您忘了传入第一个参数,因为您目前没有在函数中使用它。因此,给定您当前的函数定义,如果调用
handlesumofmulti钳子(5)
,那么在函数内部,
multiplier
是5,而
range
是未定义的


您需要为第一个参数指定一个伪参数,因此
handleSumofMulti钳(null,5)
。这样
range
将是5,它应该可以正常工作

确保将“range”值转换为int。 如果我这样做:

var a = Array('6')
a.length

我们得到1作为数组长度。用户输入通常是一个字符串,所以这可能是您的错误。

实际上我所做的是

const a = Array(...Array(parseint(range)).keys());

我试过这个,似乎效果不错。具体是什么问题?我不知道“不把范围作为正确的参数”是什么意思。显示当前输出和所需输出当我记录a时,它打印为空数组。更改
const a=array(…array(range).keys())
to
const a=Array(…Array(parseInt(range)).keys())