【发布时间】:2021-11-17 16:57:33
【问题描述】:
我有两个数组代表一个类似 fifo 的状态,一个旧状态和一个新状态。我需要一个函数,通过将新数组与旧数组进行比较来找到新添加的项目。下面是两个数组的 3 个示例,其中 1 与另一个相比在其前面添加了项目:
// Input 1
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
const arr2 = ['a', 'b', 'a', 'b', 'c', 'd', 'e', 'f', 'g']; // added 'a' and 'b' in front
// Input 2
const arr3 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
const arr4 = ['q', 'r', 'a', 'b', 'c', 'd', 'e', 'f', 'g']; // added 'q' and 'r' in front
// Input 3
const arr5 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
const arr6 = ['a', 'b', 'q', 'a', 'b', 'c', 'd', 'e', 'f']; // added 'a' 'b' and 'q' in front
// New Input 4
const arr7 = ['a', 'b', 'a', 'b', 'c', 'd', 'e', 'f', 'g'];
const arr8 = ['a', 'b', 'a', 'b', 'a', 'b', 'c', 'd', 'e']; // added 'a' and 'b' in front
请注意,新添加项目的数量从数组的后面移除。
这里需要的功能getItemsAdded(arr1, arr2)函数:
// Desired output for 'getItemsAdded()' function
console.log(getItemsAdded(arr1, arr2)); // [ 'a', 'b' ]
console.log(getItemsAdded(arr3, arr4)); // [ 'q', 'r' ]
console.log(getItemsAdded(arr5, arr6)); // [ 'a', 'b', 'q' ]
// New
console.log(getItemsAdded(arr7, arr8)); // [ 'a', 'b' ]
感觉就像一个简单的问题,但我无法理解它。我无法使用此处提供的解决方案来解决它How to get the difference between two arrays in JavaScript?,因为它是一个不同的问题。
【问题讨论】:
标签: javascript arrays array-difference