循环中将值数组化为字符串

时间:2019-08-13 10:57:46

标签: javascript

我有一个对象(键值对)看起来像这样

enter image description here

我想获取字符串'[100000025] / [100000013]'

我不能使用var str = OBJ[0].PC + OBJ[1].PC(这给我'100000025100000013') 因为我需要支架结构。 项目数量可以变化。

已添加>>无需使用箭头功能就可以完成吗?

5 个答案:

答案 0 :(得分:6)

 const string = array.map(({PC}) => `[${PC}]`).join('/')

您可以将每个字符串映射到括在方括号中的字符串,然后以斜杠将其连接。

答案 1 :(得分:2)

您可以使用map()和join()获得该结构。 -这是与Puwka's =相同的解决方案,但没有模板文字。

var data = [
  {am: 1, ct: "", pc: "1000000025"},
  {am: 2, ct: "", pc: "1000000013"}
];

let newArr = data.map(item => "[" + item.pc +"]");

console.log(newArr.join("/")); // gives [1000000025]/[1000000013]

答案 2 :(得分:1)

您随时可以在循环中使用经典

let arr = [{PC:'1000'},{PC:'10000'}]
let arrOut = [];
for(let i = 0; i < arr.length; i++) {
    arrOut.push('[' + arr[i].PC + ']'); 
}

现在arrOut等于[“ [1000]”,“ [10000]”],我们需要将其转换为字符串并在项目之间添加'/'。

let str = arrOut.join('/');
console.log(str) // "[1000]/[10000]"

答案 3 :(得分:0)

首先,如果要划分结果,最好将其更改为数字,然后再进行划分。 例子

Number.parseInt("100000025")/Number.parseInt("100000013")

如果要显示它,则最好使用字符串插值 用背勾将其包围  [${[0].PC}]/[${[1].PC}]

希望这是您要寻找的

答案 4 :(得分:0)

因此,您需要一个来自复杂对象数组的格式为xxxx / yyyyy的字符串。

const basedata = [...];
const result = basedata.map( item => `[${item.PC}]` ).join('/')

所以我现在将解释它。 map函数将返回一个新数组,每个项目有1个条目。我声明我想要PC,但是我使用刻度线添加了一些风味,以将其注入一些括号之间。此时,它看起来像:["[1000000025]","[100000013]"],然后join将以斜杠连接数组,因此它将变成数组。

"[100000025]/[100000013]"

现在,这将根据您的baseata中的项目进行扩展。因此,如果您的basedata数组中有3个项目,它将返回:

"[10000000025]/[100000013]/[10000888]"