如何在javascript中拼接项目列表?

如何在javascript中拼接项目列表?,javascript,Javascript,我有以下资料: list1 = [{letter:'A'}, {letter:'B'}, ..., {letter:'Z'}] 我想浏览一下列表,并将键值“special”:“yes”添加到此list2:['a','C','Z'] 我想要的最终目标是结果列表: list1 = [{letter:'A'}, {letter:'C'}, {letter:'Z'}] 我该怎么做 我试着遍历列表1,检查列表2中是否有,如果没有,然后从中拼接出一个元素,但由于所有索引都发生了变化,所以它不起作用。这不

我有以下资料:

list1 = [{letter:'A'}, {letter:'B'}, ..., {letter:'Z'}]
我想浏览一下列表,并将键值“special”:“yes”添加到此
list2:['a','C','Z']

我想要的最终目标是结果列表:

list1 = [{letter:'A'}, {letter:'C'}, {letter:'Z'}]
我该怎么做


我试着遍历列表1,检查列表2中是否有,如果没有,然后从中拼接出一个元素,但由于所有索引都发生了变化,所以它不起作用。这不是我想要的吗?我该怎么办呢?

这里有两件事要做,让我们把它们分解一下:

  • 筛选不在其他列表中的关键字
  • 将一个键添加到其他键
您有一个数组,因此筛选很容易:

list1 = [{letter:'A'}, {letter:'B'}, ..., {letter:'Z'}]

filtered = list1.filter(function (el) {
    return  list2.indexOf(el.letter) !== -1;
});
现在,我们想添加其他键,
Array.prototype.map
来拯救:

final = filtered.map(function (el) {
    el.special = 'yes';
    return el;
});
Array.map:

Array.filter:


希望有帮助

那么结果列表中的
“yes”
在哪里?是否要修改原始的
列表1
?或者您只是想创建一个新的筛选列表,其中只包含与
list2
中的一个条目相匹配的元素?我想修改原始列表1,使其仅包含list2中的项目(但是添加了特殊键值。为了正确起见,您希望将list2的数组与list1中的对象数组进行比较。如果list1中属性字母的值与list2中的值进行比较,则必须创建新的list3。)?