我需要编写一个函数,该函数接受特定单词的array
,并找到相反版本的索引。
例如我需要返回“ peehs”的索引
var example = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
var result = 3
只需澄清一下,该函数已经接收到一个Array,并且不特定于上述示例。所以我可以收到一个数组,例如;
var example = ['horse', 'esroh', 'horse', 'horse']
var result = 1
而且,正如一些评论者所建议的那样,我不知道给定的数组。因此,我需要查找出现多次的单词,然后找到仅出现一次的单词的索引。
我本来以为我可以将数组的第一个索引与其余索引进行比较,但是第一个索引可以是反向版本,因此不起作用。
答案 0 :(得分:2)
这是一个示例实现:
var strings = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
var searchString = 'sheep';
function reverseString(str) {
return str.split('').reverse().join('');
}
function indexOfReverseString(str, arr) {
return arr.indexOf(reverseString(str));
}
console.log(indexOfReverseString(searchString, strings));
split('')
,reverse()
和join('')
转换为字符数组,然后将其反转并转换回字符串。indexOf
查找数组中反向字符串的索引(如果没有匹配项,则使用-1
)。答案 1 :(得分:0)
请按照以下步骤操作:
从控制台或任何来源获取输入
输入<-String
修剪[
和]
的字符串
如果,
拆分,则会得到一个数组
现在,您必须准确了解字符串的位置,即位置
反转字符串
reversedstring <-String.reverse()
foreach(array):
比较反向字符串与数组的每个元素。
宾果!返回索引
inputsting = 'sheep';
reversestring = inputsting.split("").reverse().join("");
string s = "['sheep', 'sheep', 'sheep', 'peehs', 'sheep']";
s = s.ltrim('[').rtrim(']');
string [] ss = s.split(',');
int i=0;
for(string s1 : ss)
{
if (s1==reversestring)
return i;
else i++;
}
答案 2 :(得分:0)
您可以按照以下方式检查。
我希望下面的代码能解决这个问题。
const isReverseString = (str,orgStr) =>
Array.from(str).reverse().join("") === orgStr ? true : false
let arrOfString = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'] ;
const orgStr = "sheep";
const findIndexOfArrofString = (arr) => {
arr.forEach((item,index) => isReverseString(item, orgStr) ? console.log("index is:",index) : null)
}
console.log(findIndexOfArrofString(arrOfString))
答案 3 :(得分:0)
为此您是否必须使用.split,.join和.reverse?根据您的解释,我不确定使用它们是否有意义。
这是我的解决方案,基于以下假设:反转的单词仅出现一次,正常的单词出现多次,这些是数组中唯一的字符串,并且您不知道该单词是什么:
let wordArr = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
let tempArr = wordArr.slice().sort();
if(tempArr [0] !== tempArr [1]) {
console.log(wordArr.indexOf(tempArr[0]));
} else {
console.log(wordArr.indexOf(tempArr[tempArr.length -1]));
}
大概您不能像一位评论员所建议的那样仅仅执行.indexOf('peehs')。该解决方案必须动态地找到数组中使用的单词是什么,并找到倒数第二个单词。