javascript - 如何转换一个数组中的首字母以匹配第二个数组中的值

标签 javascript arrays

我有两个数组:

array1 = ['bob', 's', 'paul'];
array2 = ['bob', 'sue', 'paul'];

我想将 array1: 's' 中的首字母转换为 array2: 'sue' 中的相应名称。

我也希望它反过来工作,其中:

array1 = ['bob', 'sue', 'paul'];
array2 = ['bob', 's', 'paul'];

因此 array1 中的“sue”将转换为与 array2 匹配的“s”。

到目前为止,我有这个功能:

function findName(arr1, arr2) {
        for (let initial of arr1) {
            if (initial.length === 1) {
                return arr2.findIndex(name => name[0] === initial) != -1
            }
        }
    }

如果初始值找到匹配的名称,它将返回 true,但我需要函数来实际创建 array3,以便它转换初始值。

换句话说:

array1 = ['bob', 's', 'paul'];
array2 = ['bob', 'sue', 'paul'];
// array3 = ['bob', 'sue', 'paul']; //array 3 maintains the same sequence order as array 1

array1 = ['b', 'sue', 'paul'];
array2 = ['s', 'paul', 'bob'];
// array3 = ['bob', 's', 'paul']; //array 3 maintains the same sequence order as array 1

array1 = ['b', 'sue', 'paul', 'robert'];
array2 = ['s', 'paul', 'bob'];
// array3 = ['bob', 's', 'paul', 'robert']; //array 3 maintains the same sequence order as array 1

array1 = ['b', 'sue', 'paul'];
array2 = ['s', 'paul', 'bob', 'robert'];
// array3 = ['bob', 's', 'paul']; //array 3 maintains the same sequence order as array 1

如果存在多个相同的首字母,只需转换第一个首字母并保留第二个:

array1 = ['b', 'b', 'sue', 'paul'];
array2 = ['s', 'paul', 'bob', 'robert'];
// array3 = ['bob', 'b', 's', 'paul']; //array 3 maintains the same sequence order as array 1

除非首字母找到匹配集,否则依次转换:

array1 = ['b', 'b', 'sue', 'paul'];
array2 = ['s', 'paul', 'bob', 'robert', 'bill'];
// array3 = ['bob', 'bill', 's', 'paul']; //array 3 maintains the same sequence order as array 1

我需要能够在此函数之外使用 array3。

最佳答案

转换一个数组中的首字母以匹配第二个数组中的值

let array1 = ['b', 'b', 'sue', 'paul'];
let array2 = ['s', 'paul', 'bob', 'robert', 'bill'];
let array3 = [];
array1.forEach(function(element) {
  let item =array2.find((el) => el.startsWith(element[0]));
  array3.push(item);
  var index = array2.indexOf(item);
  if (index > -1) {
    array2.splice(index, 1);
  }
});
 console.log(array3);

关于javascript - 如何转换一个数组中的首字母以匹配第二个数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55168831/

相关文章:

javascript - 检查下拉列表中的重复值

javascript - 如何使用 WORD 作为分隔符在 JavaScript 中拆分字符串?

Javascript - 使用输入值创建数组

c# - 标签数组不工作 c#

java - 数组在 Java 中是线程安全的吗?

javascript - 使用自定义数据预先填充熨斗菜单

javascript - SQL插入查询多次插入且不更新

c - 分配顶级数组

python - 如何在python中将两个不同维度的数组滚动成一维数组

javascript - 无法在javascript中获取JSON数组的长度