如何在JavaScript中将参数传递给const函数?
对象如何在JavaScript中将参数传递给const函数?,javascript,reactjs,Javascript,Reactjs,对象csvData有两种填充方式: 使用sampleDataarray 通过单击按钮“加载数据”并从读卡器获取值。结果 在这两种情况下,csvData中的APT列的值应替换为取自Constants.js的数组distance中适当的值。此逻辑在Main.js中实现 样本数据: NUM,APT,COST 1,ERTE,20 2,KJFK,25 3,KJFK,15 执行替换逻辑后,csvData应如下所示: NUM,APT,COST 1,483,20 2,5777,25 3,5777,15 co
csvData
有两种填充方式:
sampleData
array读卡器获取值。结果
csvData
中的APT
列的值应替换为取自Constants.js
的数组distance
中适当的值。此逻辑在Main.js
中实现
样本数据:
NUM,APT,COST
1,ERTE,20
2,KJFK,25
3,KJFK,15
执行替换逻辑后,csvData
应如下所示:
NUM,APT,COST
1,483,20
2,5777,25
3,5777,15
const replacedSampleValues = distances.reduce(
(acc, d) => {
const regex = new RegExp(`${d.label}`, 'g')
return acc.replace(regex, d.value)
}, sampleData
);
state={
csvData: replacedSampleValues
};
替换逻辑的实现如下所示:
NUM,APT,COST
1,483,20
2,5777,25
3,5777,15
const replacedSampleValues = distances.reduce(
(acc, d) => {
const regex = new RegExp(`${d.label}`, 'g')
return acc.replace(regex, d.value)
}, sampleData
);
state={
csvData: replacedSampleValues
};
然后,选项#1(见上文)实现如下:
NUM,APT,COST
1,483,20
2,5777,25
3,5777,15
const replacedSampleValues = distances.reduce(
(acc, d) => {
const regex = new RegExp(`${d.label}`, 'g')
return acc.replace(regex, d.value)
}, sampleData
);
state={
csvData: replacedSampleValues
};
但我不知道如何实施选项2。
如何将replacedSampleValues
应用于加载的数据(reader.result
)
有没有办法更新replacedSampleValues
,这样我就可以将数组reader.result
或sampleData
作为参数传递
Constants.js
export const distances = [
{label:"KJFK",value:5777},
{label:"ERTE",value:483}
]
import React, { Component } from 'react';
import { CsvToHtmlTable } from 'react-csv-to-table';
import ReactFileReader from 'react-file-reader';
import Button from '@material-ui/core/Button';
import {distances} from './Constants';
const sampleData = `
NUM,APT,COST
1,ERTE,20
2,KJFK,25
3,KJFK,15
`;
const replacedSampleValues = distances.reduce(
(acc, d) => {
const regex = new RegExp(`${d.label}`, 'g')
return acc.replace(regex, d.value)
}, sampleData
);
class CSVDataTable extends Component {
state={
csvData: replacedSampleValues
};
handleFiles = files => {
var reader = new FileReader();
reader.onload = (e) => {
// Use reader.result
this.setState({
csvData: reader.result // ???
})
this.props.setCsvData(reader.result)
}
reader.readAsText(files[0]);
}
render() {
return <div>
<ReactFileReader
multipleFiles={false}
fileTypes={[".csv"]}
handleFiles={this.handleFiles}>
<Button
variant="contained"
color="primary"
>
Load data
</Button>
</ReactFileReader>
<CsvToHtmlTable
data={this.state.csvData || sampleData}
csvDelimiter=","
tableClassName="table table-striped table-hover"
/>
</div>
}
}
export default CSVDataTable;
Main.js
export const distances = [
{label:"KJFK",value:5777},
{label:"ERTE",value:483}
]
import React, { Component } from 'react';
import { CsvToHtmlTable } from 'react-csv-to-table';
import ReactFileReader from 'react-file-reader';
import Button from '@material-ui/core/Button';
import {distances} from './Constants';
const sampleData = `
NUM,APT,COST
1,ERTE,20
2,KJFK,25
3,KJFK,15
`;
const replacedSampleValues = distances.reduce(
(acc, d) => {
const regex = new RegExp(`${d.label}`, 'g')
return acc.replace(regex, d.value)
}, sampleData
);
class CSVDataTable extends Component {
state={
csvData: replacedSampleValues
};
handleFiles = files => {
var reader = new FileReader();
reader.onload = (e) => {
// Use reader.result
this.setState({
csvData: reader.result // ???
})
this.props.setCsvData(reader.result)
}
reader.readAsText(files[0]);
}
render() {
return <div>
<ReactFileReader
multipleFiles={false}
fileTypes={[".csv"]}
handleFiles={this.handleFiles}>
<Button
variant="contained"
color="primary"
>
Load data
</Button>
</ReactFileReader>
<CsvToHtmlTable
data={this.state.csvData || sampleData}
csvDelimiter=","
tableClassName="table table-striped table-hover"
/>
</div>
}
}
export default CSVDataTable;
import React,{Component}来自'React';
从“react csv to table”导入{CsvToHtmlTable};
从“react文件读取器”导入react文件读取器;
从“@material ui/core/Button”导入按钮;
从“./常量”导入{distance};
常量采样数据=`
数,APT,成本
1,埃尔特,20岁
2,肯尼迪,25岁
3,肯尼迪,15岁
`;
const replacedSampleValues=距离。减少(
(附件d)=>{
const regex=new RegExp(`${d.label}`,'g')
返回acc.replace(正则表达式,d.value)
},样本数据
);
类CSVDataTable扩展组件{
陈述={
csvData:替换采样值
};
handleFiles=文件=>{
var reader=new FileReader();
reader.onload=(e)=>{
//使用reader.result
这是我的国家({
csvData:reader.result/???
})
this.props.setCsvData(reader.result)
}
reader.readAsText(文件[0]);
}
render(){
返回
加载数据
}
}
导出默认CSVDataTable;
可能重复的我刚才回答了你的问题,我添加了一个关于如何实现这一点的示例。可能重复的我刚才回答了你的问题,我添加了一个关于如何实现这一点的示例。