组合2个数组,如果它们不重复,则用0填充

Combine 2 arrays and fill with 0 if they are not duplicates

本文关键字:则用 填充 2个 数组 如果 组合      更新时间:2023-09-26

我有两个带日期时间的数组。我想在图表的x轴上显示这些值。

我需要一个函数,将数组合并为一个数组,并在不重复的地方添加一个"0"。

array 1 = [2016-01-20,2016-01-21,2016-01-24]
array 2 = [2016-01-21]
final array = [0, 2016-01-21, 0]

有什么快速的方法吗?

非常感谢

您可以使用map()indexOf() 执行此操作

var array1 = ['2016-01-20', '2016-01-21', '2016-01-24']
var array2 = ['2016-01-21']
var final = array1.map(function(e) {
  return (array2.indexOf(e) == -1) ? e = 0 : e;
});
console.log(final)

只需循环遍历第一个数组并检查值是否在第二个数组中。

foreach ($array1 as &$date) {
    if (!in_array($date, $array2)) {
        $date = 0;
    }
}