如何在Javascript中列出数组的当前元素
如何遍历数组并返回每个元素的位置?我想写一个函数,返回每个元素及其位置 例如:如何在Javascript中列出数组的当前元素,javascript,Javascript,如何遍历数组并返回每个元素的位置?我想写一个函数,返回每个元素及其位置 例如: const fruit = ['Orange', 'Banana', 'Apple'] Return“我最喜欢的水果是:1.橘子,2.香蕉,3.苹果” 这将返回非空情况下所需的字符串: return array.map((fruit, index) => `${index + 1}. ${fruit}`).join(', '); 函数调用依次传递水果名及其索引,每个水果返回一个条目,然后调用.join将其转
const fruit = ['Orange', 'Banana', 'Apple']
Return“我最喜欢的水果是:1.橘子,2.香蕉,3.苹果”
这将返回非空情况下所需的字符串:
return array.map((fruit, index) => `${index + 1}. ${fruit}`).join(', ');
函数调用依次传递水果名及其索引,每个水果返回一个条目,然后调用
.join
将其转换为一个逗号分隔的列表,不完全确定您希望在这里返回什么,但数组对象的.indexOf方法可能会有所帮助
例如:
["a","b","c"].indexOf("a");
// returns a result of 0, as in "a" is in position 0
您可以使用
数组。减少:
const-fruit=[“橙色”、“香蕉”、“苹果”];
const requiredString=fruit.reduce(
(acc、curr、index)=>{
返回`${acc}${index+1}${curr},`;
},'行当前为:'//这是acc的默认值
)
console.log(requiredString)代码>您可以使用reduce,如下所示
['Orange', 'Banana', 'Apple'].reduce((sentence, element, index)=>`${sentence} ${index}.${element}`, 'The line is currently:')
为了迎合‘,’。你可以这样做
['Orange', 'Banana', 'Apple'].reduce(
(sentence, element, index, wordsArray)=>`${sentence} ${index}.${element}${(index < wordsArray.length-1)?',':''}`, 'The line is currently:')
['Orange'、'Banana'、'Apple']减少(
(句子,元素,索引,wordsArray)=>`${Session}${index}.${element}${(索引
您可以研究reduce是如何工作的,以使其按您的意愿工作,或者重构它以使其更具可读性,但对于新手级别,通常会使用for循环来处理
var outputString = "My favourite fruit is: ";
for(var i = 0; i < array.length; i++){
//add the i + 1 and array[i] to output string concatenation +
}
return outputString;
var outputString=“我最喜欢的水果是:”;
对于(var i=0;i
一件棘手的事情是数组从0开始,但您可能不希望输出列表为0。橙色这就是为什么它是i+1,而不仅仅是i。['one','two','three'].forEach((f,ix)=>console.log(`${ix+1}.${f}```))
在我写了上面的内容之后,OP编辑了他们的问题以提供一点清晰。谢谢@Ric这是我要解决的问题。“构建一个函数current,该函数接受当前人员行并以字符串形式返回当前行;例如,如果“当前行”当前为[“John”、“Peter”],current(当前行)将返回“当前行为:1”。约翰,2岁。Peter“”您可以使用indexOf方法来实现这一点,但由于其他人提供了几种有效的方法来实现您想要的功能,您可能只需要获取其中一种。一个次要的注意事项是,如果您支持较旧的浏览器,那么给出的许多建议将不适用于您,因为它们依赖于ES6。如果这是一个问题(可能不是),您可能希望检查此URL以获得IE11(适用于Windows 7的最现代IE)之类的ES6支持。。公平地说,现在没有人应该使用IE11,我只是提到它,因为我曾经在一个环境中编写过内部web应用程序,而这些应用程序仍然在Windows7上,并且使用IE作为标准浏览器。它比你想象的更普遍(当然也比它应该更普遍!)感谢@Alnitak,参数索引将采用什么作为参数?@YonasTekeste.map
函数始终将当前元素的索引作为第二个参数传递给回调函数。数组联接比一系列单独的concatention和/或插值更有效。reduce
是错误的方法在这里它在所有情况下都会留下一个悬空的,
。您需要映射
/连接
,它只在元素之间插入分隔符。对于reduce
解决方案,您必须使用reducer函数的第三个“current index”参数来确定是否添加分隔符,此时您肯定已经将解决方案过度复杂化了。我相信,在reduce函数完成后,我们可以简单地删除后面的,
,Shubham。如果我想用simple for loop实现这一点怎么办?Yonas,你可以试试这个:这个输出<代码>“当前行是:0.Orange 1.Banana 2.Apple”
,元素之间没有<代码>,
。编辑答案以迎合','
var outputString = "My favourite fruit is: ";
for(var i = 0; i < array.length; i++){
//add the i + 1 and array[i] to output string concatenation +
}
return outputString;