Javascript 尝试将多个字符串数组解析为数字

Javascript 尝试将多个字符串数组解析为数字,javascript,arrays,loops,Javascript,Arrays,Loops,是否有一种方法可以遍历每个Oracle endpnt数组并将字符串解析为数字和字符串 仍然保持Oracle endpnt阵列的有序 代码 如果我理解正确,这应该是: var oracles=[ {name:'oracle1',endpnt:['1','3']}, {name:'oracle2',endpnt:['1','2']}, {name:'oracle3',endpnt:['1','3']}, {name:'oracle4',endpnt:[]} ] var r=oracles.map(

是否有一种方法可以遍历每个Oracle endpnt数组并将字符串解析为数字和字符串 仍然保持Oracle endpnt阵列的有序

代码


如果我理解正确,这应该是:

var oracles=[
{name:'oracle1',endpnt:['1','3']},
{name:'oracle2',endpnt:['1','2']},
{name:'oracle3',endpnt:['1','3']},
{name:'oracle4',endpnt:[]}
]
var r=oracles.map(x=>{
x、 endpnt=x.endpnt.map(z=>Number(z))
返回x
})

log(r)
如果不想更改所有代码,可以为第二个数组运行映射

var oracleTitle= ['oracle1','oracle2','oracle3','oracle4']
var oracleEndpnt = [['1','3'],['1','2'],['1','3'],[]]


function Oracle(name, endpnt) {
  this.name = name;
  this.endpnt = endpnt

}

var oracles = []

for(var i=0;i<oracleTitle.length;i++) {
// Change this part
  oracles.push(new Oracle(oracleTitle[i],oracleEndpnt[i].map(num => parseInt(num))));

}

console.log(oracles)
var oracletTitle=['oracle1'、'oracle2'、'oracle3'、'oracle4']
变量oracleEndpnt=[['1','3'],['1','2'],['1','3'],[]
函数Oracle(名称,endpnt){
this.name=名称;
this.endpnt=endpnt
}
var oracles=[]
对于(var i=0;i parseInt(num));
}
控制台日志(oracles)
var oracletTitle=['oracle1'、'oracle2'、'oracle3'、'oracle4']
变量oracleEndpnt=[['1','3'],['1','2'],['1','3'],[]
函数Oracle(name,endpnt){this.name=name;this.endpnt=endpnt}
var oracles=oracletTitle.map((s,i)=>neworacle(s,oracleEndpnt[i].map(Number)))

console.log(JSON.stringify(oracles))
这是否回答了您的问题?只需更改Oracle来进行映射:
this.endpnt=endpnt.map(i=>+i)为了解决这个问题,我考虑了每个人的答案。谢谢。对用作oracle构造函数第二个参数的数组进行分解/重新聚集是没有用的。非常感谢。我提供的示例是模拟数据,但我将您的解决方案与.map()一起使用对于我的主要问题,在一个更大的规模和它的工作完美。如果我没有弄错的话,我们正在使用map()函数将num参数传递给它,该参数将以数组中的每个项为目标,然后解析数组中的每个项,并根据新结果创建一个新数组?。我只是不想插上电源,不明白如果我错了就纠正我@VictorShinobiGakiya@KimaniKelly这是正确的,我们在这里映射对应于解析标题的数组,在本例中,因为它们是数组的索引,与标题[i]的索引相同,所以不会有问题。如果您有不同数量的标题/数组,此方法可能会给您带来麻烦。我在for循环中应用了此方法,该循环将遍历90个数组,将多个bytes32十六进制字符串解析为易读字符串,结果非常理想@Victorshinobigakiya您的代码也能够解决我的问题谢谢@马约曼
[
  Oracle { name: 'oracle1', endpnt: [ '1', '3' ] },
  Oracle { name: 'oracle2', endpnt: [ '1', '2' ] },
  Oracle { name: 'oracle3', endpnt: [ '1', '3' ] },
  Oracle { name: 'oracle4', endpnt: [] }
]
var oracleTitle= ['oracle1','oracle2','oracle3','oracle4']
var oracleEndpnt = [['1','3'],['1','2'],['1','3'],[]]


function Oracle(name, endpnt) {
  this.name = name;
  this.endpnt = endpnt

}

var oracles = []

for(var i=0;i<oracleTitle.length;i++) {
// Change this part
  oracles.push(new Oracle(oracleTitle[i],oracleEndpnt[i].map(num => parseInt(num))));

}

console.log(oracles)