我试图创建第三个列表,这是将两个其他列表合并后的结果,但是我不知道如何。
我还一直在努力将第一个列表(名称)中的第一个元素与第二个列表(状态)中的第一个元素组合在一起,并使它们成为第三个列表(员工)中的第一个元素。
例如,我希望员工列表中的第一个元素为“迈克尔住在俄勒冈州”。
如果有人可以帮助我,我将非常感激。谢谢。
let arr = [1, 2, 3]
function callback(n) {
return n > 1;
}
function filter(arr, callback) {
if (!(typeof callback === 'Function' || typeof callback === 'function')) {
throw new TypeError("Callback is not a function");
}
const filteredArr = [];
for (let z = 0; z < arr.length; z++) {
if (callback(arr[z])) {
filteredArr.push(arr[z]);
}
}
return filteredArr;
}
console.log(filter(arr, callback));
答案 0 :(得分:6)
LINQ Zip进行救援:
var result = names
.Zip(states, (name, state) => $"{name} lives in {state}")
.ToList();
答案 1 :(得分:2)
您可以按名称和索引从名称中提取,然后使用索引从状态中提取正确的值。
然后,将string.Format()与参数一起使用,以将{0}和{1}替换为名称和状态[index]。
这可以使用linq来完成,例如:
List<string> employees = names
.Select((name, index) => string.Format("{0} lives in {1}", name, states[index]))
.ToList();
答案 2 :(得分:2)
如果两个列表的长度相同,则可以遍历其中一个列表,然后将names[i]
和states[i]
都添加到新列表中。
不使用Linq的解决方案:
if (names.Count == states.Count) {
for (int i = 0; i < names.Count; ++i) {
employees.Add(names[i] + " lives in " + states[i]);
}
}