如何使用JavaScript在数组上循环?
我有一个字符串,其数据由管道字符(如何使用JavaScript在数组上循环?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个字符串,其数据由管道字符(|)分隔 例子 我知道如何使用split()分隔每个数据 但是,我不知道在生成的数组中会有多少管道 在jQuery或JavaScript中,如何循环返回的数组?分隔。长度应该是您所需要的全部 在jQuery或JavaScript中,如何循环遍历每个分离的变量 基本上,您只需迭代生成的数组 jQuery 这种方法很容易使用,并且有利于封装所使用的变量 $.each(separated, function(index, chunk) { // `chunk`
|
)分隔
例子
我知道如何使用split()
分隔每个数据
但是,我不知道在生成的数组中会有多少管道
在jQuery或JavaScript中,如何循环返回的数组?分隔。长度应该是您所需要的全部
在jQuery或JavaScript中,如何循环遍历每个分离的变量
基本上,您只需迭代生成的数组
jQuery
这种方法很容易使用,并且有利于封装所使用的变量
$.each(separated, function(index, chunk) {
// `chunk` is each member of the array.
});
当然,jQuery是JavaScript,所以下面的任何方法都可以使用
JavaScript
这是推荐的方法
for (var i = 0, length = separated.length; i < length; i++) {
var chunk = separated[i];
// `chunk` is each member of the array.
}
此循环将循环原型链上的所有属性,因此必须使用hasOwnProperty()
。因此,不建议将其用于阵列
这个循环在ECMA 6中是标准化的,能够在NodeList
s和迭代器上循环
for (var chunk of separated) {
// `chunk` is each member of the array.
}
该方法是ECMA-262标准的补充。它在IE8中不可用,但可以相对容易地使用
separated.forEach(function(chunk, index) {
// `chunk` is each member of the array.
});
其他专门方法
如果您希望针对特定目标进行迭代,那么使用专门的迭代器可能会很有用。请记住,它们也没有最好的浏览器支持
创建关联回调为其返回的元素的mew数组
基于从左到右减少数组的元素来创建新值
separated.reduce(function(accumulator, element) {
return accumulator.concat(element);
}, "");
另见方法
创建一个新数组,用关联回调的返回值替换每个元素
separated.map(function(element) {
return element.substr(0, 1);
});
返回一个布尔值,该值是数组中通过测试的每个元素的结果。这个方法会短路,即当一个元素的回调没有返回truthy时,它就会返回
返回一个布尔值,该值是数组中某个元素通过测试的结果。此方法会短路,即当一个元素的回调通过测试时返回
separated.some(function(element) {
return element.substr(0, 1) == "a";
});
如果您的问题真的是“如何循环每个分离的变量?”那么:
for(变量i=0;i
您可以在jquery中这样做
$.each(separated,function(key,item){ alert('here is ' + item + ' at position ' + key) })
str.split()返回一个值数组,因此在您的示例中,由于“separated”是一个数组,您可以:
for (var i=0, len=separated.length; i < len; i++) {
// do something with separated[i]
}
for(变量i=0,len=separated.length;i
像大多数其他语言一样,使用FOR…NEXT构造循环:
var somestring = "data1|data2|data3";
var separated = somestring.split("|");
for (i=0 ; i<separated.length; i++) {
document.write(separated[i]);
document.write("<br/>");
}
var somestring=“data1 | data2 | data3”;
var separated=somestring.split(“|”);
for(i=0;ifor(数组中的变量a)已弃用,不应使用。我没有意识到,我正在考虑我通常如何在C#中使用它。我将编辑我的答案。@Rob it未弃用,它只是不是迭代数组的最佳循环。
@Alex,in的最佳实践状态是用于迭代对象的属性,而不是数组的元素。请参阅@Rob true,但它在任何地方都不会被弃用,是吗?5分钟前被问到,已经有7个答案了,我有时喜欢堆栈溢出…+1对于javascriptfor
循环的教育,我今天学到了两个新东西,甚至还没到午餐时间耶,alex!完美答案!+1
separated.some(function(element) {
return element.substr(0, 1) == "a";
});
for (var i = 0; i < separated.length; i++)
{
//Do something with separated[i];
}
//or (apparently this is deprecated)
for(var a in separated)
{
//Do something with a
}
$.each(separated,function(key,item){ alert('here is ' + item + ' at position ' + key) })
for (var i=0, len=separated.length; i < len; i++) {
// do something with separated[i]
}
var somestring = "data1|data2|data3";
var separated = somestring.split("|");
for (i=0 ; i<separated.length; i++) {
document.write(separated[i]);
document.write("<br/>");
}