访问数组的特定元素
Accesses specific element of array
我正在尝试访问数组的特定条目。我正在传递一个字符串,并试图根据空格对其进行解析。有更简单的方法吗?
var toAdd = "Hello Everyone this is cool isnt it?";
var final = "";
var toAdd2 = [ ];
var sub = "";
var lastIndex = 0;
for( var i = 0; i < toAdd.length; i++ )
{
if( toAdd[ i ] == " ")
{
sub = toAdd.substring( lastIndex , i ).trim();
toAdd2[ i ] = sub;
lastIndex = i;
}
if( i == toAdd.length - 1 )
{
sub = toAdd.substring( lastIndex, toAdd.length).trim();
toAdd2[ i ] = sub;
}
}
console.log( toAdd2[ 0 ] );
这一直给我一个错误,说,TypeError:无法读取未定义的属性"0"。
试试这个:
var str = "Hello Everyone this is cool isnt it?";
var toAdd = str.split(" ");
您的算法存在缺陷。参见console.log(toAdd2)
:的输出
[未定义,未定义,尚未定义,未确定,"你好",未定义的,未定义的,未定义,未定义,"Everyone",未定义,未定义,"this",未定义,未定义的,"is",未确定,未定义,未定义,未定义,"酷",未定义,未定义,"不是",未定义,未定义的,"它?"]
更改为:
if( toAdd[ i ] == " ")
{
sub = toAdd.substring( lastIndex , i ).trim();
toAdd2.push(sub);
lastIndex = i;
}
if( i == toAdd.length - 1 )
{
sub = toAdd.substring( lastIndex, toAdd.length).trim();
toAdd2.push(sub);
}
现在它得到了正确的输出:
["Hello", "Everyone", "this", "is", "cool", "isnt", "it?"]
在对toAdd
中的每个字符进行迭代,并且只更改与条件匹配的索引之前。因此,toAdd2
中的大多数元素将未被分配,因此未被定义。您希望使用array.push
向数组中添加元素。
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- 用于检查数组中是否存在元素的javascript自定义方法
- 在数组中的一个元素上设置多个值
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 数组中元素(字符串)的总和
- javascript数组元素是否知道其封闭数组
- 查找数组javascript中包含的元素类型
- 如何在javascript上向数组的对象添加新元素
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- 一些元素没有从数组中删除
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 元素不会添加到Javascript数组中
- 如何从另一个带下划线的数组中筛选带元素的数组
- 如何将函数应用于两个数组的第 n 个元素(数组的数组)
- Js接受两个值之间的元素(数组)