数组,它们是如何设置的,变量就像一个?

时间:2013-07-23 20:09:32

标签: javascript arrays variables for-loop

我目前正在从书籍和codecadmey学习JavaScript,并且一直困扰阵列。两个来源在设置数组方面都有所不同。

这些之间有什么区别:

var arrayname = new array ();
var arrayname = [];

同样在下面的代码中,在我看来,它正在将变量文本视为一个数组,而for循环搜索它。这也让我感到困惑。如何将普通变量视为数组?

如果你能帮忙的话会很棒!感谢。

var text = "Lorem Zachary ipsum dolor sit amet, consectetur adipiscing elit. Fusce ac dapibus felis, vel interdum ipsum. Sed non justo sed sapien faucibus interdum. Ut vehicula mauris hendrerit, dapibus diam eu, varius leo. Integer eu semper mi, eget feugiat ante.  Donec pretium turpis dolor, eu imperdiet nunc vehicula at. Phasellus id mi sodales Zachary eros aliquam venenatis. Nam a eros orci. Sed commodo accumsan sapien, nec rhoncus elit venenatis in. Etiam vitae lorem libero. Quisque porta nibh id mauris auctor laoreet. Nunc porttitor metus et mi luctus hendrerit. Zachary Curabitur quis semper justo. Morbi sed augue commodo, blandit tortor eu, bibendum nibh. ";
var myName = "Zachary";
var hits = [];
for (var i = 0; i<text.length; i++){
    if (text[i] === "Z"){
        for(var j = i; j< (myName.length + i); j++)
        hits.push(text[j]);
    }
}

if (hits.length===0){
    console.log("your name wasn't found");
}
else{
    console.log(hits);
}

1 个答案:

答案 0 :(得分:1)

在javascript和大多数语言中,String实现类似于数组的属性,以允许您使用单个字符。但是,在javascript中应该明确String与Array不同,实际上像length这样的属性只能在String上读取,但在Array上是可编辑的。

代码:

var arrayname = new Array(); 

将arrayname对象标注为Array类的实例。由于Array类提供了具有长度的功能并允许您遍历其成员,因此您现在可以立即开始在javascript中分配值,如:

arrayname[0] = "test";

但这不是维度数组的唯一方法。还有速记版本。即使以下情况也可行:

var fieldCount = resultSet.fieldCount;
var fields = [];
for(var i = 0; i < fieldCount;i++) {
    fields.push(resultSet.fieldName(i));
};

因此,虽然有许多简写方法,但这些方法基本上只是创建同一个对象的不同方式,即Array类型的实例。

但正如其他人所指出的,我不熟悉您使用的语法:

var arrayname = array[];

我不认为这是正确的,但我没有测试过它。这可能来自不是javascript的源。