我有两个"列表"。 第一个只包含代码的数组,如下所示:
[10, 50, 75, 88]
秒,包含所有代码的列表+表示可能,并且如下所示:
[
{
code: 10,
name: 'example 10'
},
{
code: 50,
name: 'example 50'
},
{
code: 60,
name: 'example 60'
},
{
code: 66,
name: 'example 66'
},
{
code: 75,
name: 'example 75'
},
{
code: 88,
name: 'example 88'
}
]
我想附加第二个列表中的解释,用于第一个数组的每个项目。
例如,结果应为:
[
{
code: 10,
name: 'example 10'
},
{
code: 50,
name: 'example 50'
},
{
code: 75,
name: 'example 75'
},
{
code: 88,
name: 'example 88'
}
]
或:
['10- examle 10', '50 - example 50', '75 - example 75', '88 - example 88']
我更喜欢第一个版本,但第二个版本还不错...... 我怎么能这样做?
答案 0 :(得分:0)
如果您希望输入列表中的每个项找到与匹配代码对应的名称,我建议将spec / mapping数组转换为code: name
对象。
例如,使用.map和.reduce数组方法(如果需要支持IE8,请检查polyfill的链接):
var list = [10, 50, 75, 88]
var spec = [{"code":10,"name":"example 10"},{"code":50,"name":"example 50"},{"code":60,"name":"example 60"},{"code":66,"name":"example 66"},{"code":75,"name":"example 75"},{"code":88,"name":"example 88"}]
// convert spec to {"10":"example 10", ...}
var spec_obj = spec.reduce(function(previous, current) {
previous[current.code] = current.name
return previous
}, {})
var annotated = list.map(function(item) {
return item + ' - ' + spec_obj[item]
})
console.log(annotated)