0

我有一个看起来像这样的数组:

var locationsArray = [['title1','description1','12'],['title2','description2','7'],['title3','description3','57']];

我不知道这是什么类型的数组。更重要的是,我将不得不根据那里的信息创建一个。因此,如果最后的数字大于 10,则以相同的样式创建一个全新的数组,但只有标题和描述。

var newArray = [];
// just a guess
if(locationsArray[0,2]>10){
   //add to my newArray like this : ['title1','description1'],['title3','description3']
   ? 
}

我该怎么做?

4

5 回答 5

3

尝试如下,

var newArray = [];

for (var i = 0; i < locationsArray.length; i++) {
   if (parseInt(locationsArray[i][2], 10) > 10) {
      newArray.push([locationsArray[i][0], locationsArray[i][1]]);
   }
}

演示:http: //jsfiddle.net/cT6NV/

于 2013-07-17T20:01:17.627 回答
1

它是一个数组数组,也称为二维数组。每个索引都包含自己的数组,该数组具有自己的一组索引。

例如,如果我检索locationsArray[0]我得到['title1','description1','12']. 如果我需要从第一个数组中获取标题,我可以通过locationsArray[0][0]get访问它'title1'

完成您的示例:

var newArray = [];
// just a guess
if(locationsArray[0][2]>10){
   newArray.push( [ locationsArray[0][0], locationsArray[0][1] ] );
}

把它扔进一个循环,你就可以走了。

于 2013-07-17T20:04:30.447 回答
0

它是一个字符串数组。

每次有这个:[],它定义一个数组,内容可以是任何东西(比如另一个数组,在你的情况下)。

因此,如果我们采用以下示例:

var myArray = ["string", "string2", ["string3-1", "string3-2"]];

这些值将是这样的:

myArray[0] == "string"
myArray[1] == "string2"
myArray[2][0] == "string3-1"
myArray[2][1] == "string3-2"

您的 RAM 可以处理尽可能多的深度级别。

于 2013-07-17T20:02:15.527 回答
0

locationArray 是一个数组数组。第一个 [] 运算符索引到主数组(例如 locationsArray[0] = ['title1','description1','12']),而第二个 [] 操作索引到第一个索引指向的数组(例如 locationsArray [0][1] = '描述1')。

您的 newArray 看起来需要是相同的东西。

于 2013-07-17T20:03:43.207 回答
0

它是一个数组数组。

var newArray = [];
var locationsArray = [
    ['title1','description1','12'],
    ['title2','description2','7'],
    ['title3','description3','57']
];

for(i = 0; i < locationsArray.length; i++) {
    if (locationsArray[i][2] > 10) {
        newArray .push([locationsArray[i][0], locationsArray[i][1]]);
    }
}

console.log(newArray );
于 2013-07-17T20:08:32.340 回答