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())
toconst a=Array(…Array(parseInt(range)).keys())代码>