在 javascript 中创建一个函数,使 returns 数组和元素的顺序相反
Make a function in javascript that returns the array and elements in reverse order
正如我在标题中所说,我想制作一个接收数组的函数,并且 return 以相反的顺序接收所有元素。我研究了一点 javascript,但这困扰了我一段时间。我做了两个函数来表达清楚,连我的朋友都不明白这个概念,第二个是那个在打扰我。
const reverse = (pal) => {
var aux = "";
for(var i in pal){
aux = pal[i] + aux;
}
return aux;
}
console.log(reverse("are")); //=> returns "era"
上面这个函数工作正常,return只有一个词,接下来需要return数组和所有的词倒过来(以防万一有人不明白)
const reverPal = (pal) => {
let aux = "";
let aux1 = "";
for (var i in pal) {
aux += pal[i]
for (var i in aux.length) { //I think the problem starts here
aux.forEach((word) => {
word.reverse();
aux1 += word;
})
}
}
return aux1;
}
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
有人可以帮助我吗?
I want to make a function that receives an array and return all the elements in reverse order.
如果要反转数组元素顺序:
function reverseArr(arr){
var outArr = [];
for (var i = arr.length-1;i>=0;i--){
outArr.push(arr[i]);
}
return outArr;
}
console.log(reverseArr([1,2,3]));
// [3, 2, 1]
如果要在字符串中反转字符:
function reverseString(s){
var outS = "";
for (var i = s.length-1;i>=0;i--){
outS += s[i];
}
return outS;
}
console.log(reverseString("abc中"));
// 中cba
您总是可以只使用 reverse()
函数。此函数将执行以下操作:
- map() 执行一个 foreach 循环,并简单地 returns 结果作为数组中的新元素。
- split() 将单个单词转换为字母数组。
hi
=> ['h', 'i']
- reverse() 颠倒元素的顺序。
['h', 'i']
=> ['i', 'h']
- join() 获取数组的元素并将其转换回字符串。
['i', 'h']
=> ih
const reverPal = (pal) => {
return pal.map(word => word.split('').reverse().join(''));
}
console.log(reverPal(["hello", "how", "are", "you"]));
反转字符串的一种简单、实用的方法是将其展开到一个数组中并调用 reverse()
on it and the join()
它备份:
let word = "hello"
console.log([...word].reverse().join(''))
您可以通过 map()
:
将此应用于数组的每个元素
reverPal = (arr) => arr.map(word => [...word].reverse().join(''))
console.log(reverPal(["hello", "how", "are", "you"]))
您没有在第二个函数中创建数组
const reverPal = (pal) => {
let aux = "";
let aux1 = "";
for (var i in pal) {
aux += pal[i]
for (var i in aux.length) { //I think the problem starts here
aux.forEach((word) => {
word.reverse();
aux1 += word;
})
}
}
return aux1;
} //console.log(reverPal(["hello", "how", "are", "you"]);
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
您想 reverPal
到 return 一个数组,但是您要在哪里创建数组?
您似乎只想在第二个函数中使用第一个函数
const reverse = (pal) => {
var aux = "";
for(var i in pal){
aux = pal[i] + aux;
}
return aux;
}
const reverPal = (pal) => {
let aux1 = [];
for (var i in pal) {
aux1.push(reverse(pal[i]));
}
return aux1;
};
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
或者,如果您不想在第二个中使用第一个,则只需将第一个粘贴到第二个中
const reverPal = (pal) => {
let aux1 = [];
for (var i in pal) {
var pal1 = pal[i];
var aux = "";
for(var i in pal1){
aux = pal1[i] + aux;
}
aux1.push(aux);
}
return aux1;
};
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
综上所述,您可能应该了解一些关于 JavaScript
的事情
不要在 JavaScript 中使用 for(elem in array)
。
参见:Why is using "for...in" with array iteration a bad idea?
考虑永远不要使用 var
现在 const
和 let
都存在,没有理由使用
var
。 var
有许多 const
和 let
都解决的问题。
参见:https://hackernoon.com/why-you-shouldnt-use-var-anymore-f109a58b9b70
如果您只是在寻找解决方案而不是 "making a function" 的实际问题,其他人已经发布了更多惯用的解决方案。
由于您已经有一个输出反向单词的工作函数,您可以将该函数传递给 Array.map。
const reverse = (pal) => {
var aux = "";
for(var i in pal){
aux = pal[i] + aux;
}
return aux;
}
const reverPal = (arr) => {
return arr.map(reverse);
}
console.log(reverse("hello"));
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
正如我在标题中所说,我想制作一个接收数组的函数,并且 return 以相反的顺序接收所有元素。我研究了一点 javascript,但这困扰了我一段时间。我做了两个函数来表达清楚,连我的朋友都不明白这个概念,第二个是那个在打扰我。
const reverse = (pal) => {
var aux = "";
for(var i in pal){
aux = pal[i] + aux;
}
return aux;
}
console.log(reverse("are")); //=> returns "era"
上面这个函数工作正常,return只有一个词,接下来需要return数组和所有的词倒过来(以防万一有人不明白)
const reverPal = (pal) => {
let aux = "";
let aux1 = "";
for (var i in pal) {
aux += pal[i]
for (var i in aux.length) { //I think the problem starts here
aux.forEach((word) => {
word.reverse();
aux1 += word;
})
}
}
return aux1;
}
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
有人可以帮助我吗?
I want to make a function that receives an array and return all the elements in reverse order.
如果要反转数组元素顺序:
function reverseArr(arr){
var outArr = [];
for (var i = arr.length-1;i>=0;i--){
outArr.push(arr[i]);
}
return outArr;
}
console.log(reverseArr([1,2,3]));
// [3, 2, 1]
如果要在字符串中反转字符:
function reverseString(s){
var outS = "";
for (var i = s.length-1;i>=0;i--){
outS += s[i];
}
return outS;
}
console.log(reverseString("abc中"));
// 中cba
您总是可以只使用 reverse()
函数。此函数将执行以下操作:
- map() 执行一个 foreach 循环,并简单地 returns 结果作为数组中的新元素。
- split() 将单个单词转换为字母数组。
hi
=>['h', 'i']
- reverse() 颠倒元素的顺序。
['h', 'i']
=>['i', 'h']
- join() 获取数组的元素并将其转换回字符串。
['i', 'h']
=>ih
const reverPal = (pal) => {
return pal.map(word => word.split('').reverse().join(''));
}
console.log(reverPal(["hello", "how", "are", "you"]));
反转字符串的一种简单、实用的方法是将其展开到一个数组中并调用 reverse()
on it and the join()
它备份:
let word = "hello"
console.log([...word].reverse().join(''))
您可以通过 map()
:
reverPal = (arr) => arr.map(word => [...word].reverse().join(''))
console.log(reverPal(["hello", "how", "are", "you"]))
您没有在第二个函数中创建数组
const reverPal = (pal) => {
let aux = "";
let aux1 = "";
for (var i in pal) {
aux += pal[i]
for (var i in aux.length) { //I think the problem starts here
aux.forEach((word) => {
word.reverse();
aux1 += word;
})
}
}
return aux1;
} //console.log(reverPal(["hello", "how", "are", "you"]);
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
您想 reverPal
到 return 一个数组,但是您要在哪里创建数组?
您似乎只想在第二个函数中使用第一个函数
const reverse = (pal) => {
var aux = "";
for(var i in pal){
aux = pal[i] + aux;
}
return aux;
}
const reverPal = (pal) => {
let aux1 = [];
for (var i in pal) {
aux1.push(reverse(pal[i]));
}
return aux1;
};
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
或者,如果您不想在第二个中使用第一个,则只需将第一个粘贴到第二个中
const reverPal = (pal) => {
let aux1 = [];
for (var i in pal) {
var pal1 = pal[i];
var aux = "";
for(var i in pal1){
aux = pal1[i] + aux;
}
aux1.push(aux);
}
return aux1;
};
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"
//but returns nothing in this code
综上所述,您可能应该了解一些关于 JavaScript
的事情不要在 JavaScript 中使用
for(elem in array)
。参见:Why is using "for...in" with array iteration a bad idea?
考虑永远不要使用
var
现在
const
和let
都存在,没有理由使用var
。var
有许多const
和let
都解决的问题。参见:https://hackernoon.com/why-you-shouldnt-use-var-anymore-f109a58b9b70
如果您只是在寻找解决方案而不是 "making a function" 的实际问题,其他人已经发布了更多惯用的解决方案。
由于您已经有一个输出反向单词的工作函数,您可以将该函数传递给 Array.map。
const reverse = (pal) => {
var aux = "";
for(var i in pal){
aux = pal[i] + aux;
}
return aux;
}
const reverPal = (arr) => {
return arr.map(reverse);
}
console.log(reverse("hello"));
console.log(reverPal(["hello", "how", "are", "you"]));
//should return = "olleh", "woh", "era", "ouy"