我如何将键分配给JavaScript数组中的现有值

问题描述 投票:-1回答:3

我从以前的方法中使用值恢复了一个数组,我需要遍历它,并按字母顺序为每个值分配一个键。

["T", "C", "α", "T(linked)", "C"]

这是我前面提到的数组。我想知道如何在穿越数组时为它分配一个字母形式的键,这样最终结果是:

["A:T", "B:C", "C:α", "D:T(linked), "E:C"]

欢迎任何建议。预先谢谢你。

javascript arrays key-value
3个回答
1
投票

您可以通过使用Array.prototype.map功能实现。

let a = ["T", "C", "α", "T(linked)", "C"];

a = a.map((val,index)=>{ return `${String.fromCharCode(65 + index )}:${val}`; } ) ;

console.log(a);

1
投票

您可以对前缀的数字值进行闭包,并通过拆分项目并将新的字符串推入结果集来减少数组。

var data = ["T, C", "α", "T(linked), C"],
    result = data.reduce((i => (r, s) => {
        s.split(/,\s*/).forEach(v => r.push(`${(i++).toString(36).toUpperCase()}:${v}`));
        return r;
    })(10), []);

console.log(result);

通过使用单个元素,您可以仅使用前缀映射值。

var data = ["T", "C", "α", "T(linked)", "C"],
    result = data.map((i => v => `${(i++).toString(36).toUpperCase()}:${v}`)(10));

console.log(result);

0
投票

在您的输入数组中:

["T, C", "α", "T(linked), C"]

“ T,C”和“ T(链接),C”应该是原样的元素,还是缺少引号?换句话说,你的意思是这个吗?

["T", "C", "α", "T(linked)", "C"]

您可以使用地图功能。使用代码

newArray = array.map((value, index) => ...)

将生成一个新数组,并为旧数组的每个值和索引完成一个函数。

array = ["T", "C", "α", "T(linked)", "C"];
newArray = array.map((value, index) => `${String.fromCharCode(index + 65)}:${value}`);

newArray将设置为

["A:T", "B:C", "C:α", "D:T(linked)", "E:C"]

如果您不了解这种连接字符串的方法,请改用此方法。

array = ["T", "C", "α", "T(linked)", "C"];
newArray = array.map((value, index) => String.fromCharCode(index + 65) + ":" + value);
© www.soinside.com 2019 - 2024. All rights reserved.