---
id: 60a0cd91ed86e04a947f6608
challengeType: 1
videoUrl: ''
forumTopicId: -1
title: 将传入字符串中每个字符获取与其配对的元素返回
---
## Description

欢迎关注路条编程网站,本专题将教您中级算法脚本相关的范围内数字求和、区分两个数组、搜索与替换、集合排序、求斐波那契数组中的奇数之和、二进制转换及构造对像类等相关算法问题。
将传入字符串中每个字符获取与其配对的元素返回
本次练习我们需要写一个函数 strPairElement 。该方法接收一个参数 str,该方法把传入的字符串中每个字符,获取与其配对的元素,并将结果作为二维数组返回。
碱基对是一对 AT 和 CG。将缺少的元素与提供的字符匹配。
将提供的字符作为每个数组中的第一个元素返回。
例如,对于输入 GCG,返回[[“G”, “C”],[“C”, “G”],[“G”, “C”]]。
字符及与其配对的元素在一个数组中。再将所有数组放到一个封装数组中。
在介绍完整代码之前,我们先介绍下数组 map 方法的具体用法:
map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
语法:
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
参数:
callback
生成新数组元素的函数,使用三个参数:
currentValue
callback 数组中正在处理的当前元素。
index可选
callback 数组中正在处理的当前元素的索引。
array可选
map 方法调用的数组。
thisArg可选
执行 callback 函数时值被用作this。
返回值:
一个由原数组每个元素执行回调函数的结果组成的新数组。
练习完整代码如下所示:
function strPairElement( str ){
var pairs = {
A: "T",
T: "A",
C: "G",
G: "C"
};
var arr = str.split("");
return arr.map(x => [x, pairs[x]]);
}
console.log( strPairElement('GTCAGT') );
// => 0: (2) ["G", "C"]
// => 1: (2) ["T", "A"]
// => 2: (2) ["C", "G"]
// => 3: (2) ["A", "T"]
// => 4: (2) ["G", "C"]
// => 5: (2) ["T", "A"]
## Instructions
## Tests
## Challenge Seed
## Solution