0

我目前正在从一本书和 codecadmey 中学习 JavaScript,并且一直对数组感到困惑。两种来源在设置数组的方式上有所不同。

这些之间有什么区别:

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

同样在下面的这段代码中,在我看来,它将变量 text 视为一个数组,而 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);
}
4

1 回答 1

1

在 javascript 和大多数语言中,String 实现了类似数组的属性,以允许您使用单个字符。但是,在 javascript 中应该明确 String 与 Array 不同,实际上像长度这样的属性在 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 的来源。

于 2013-07-23T20:16:20.150 回答