从现有数组创建数组

create an array from an existing array

本文关键字:数组 创建      更新时间:2024-04-04

我想通过提取其他数组的日期来创建一个数组,然后用逗号将值分隔成一个字符串。

      array.push({date:created_at,username:user});
      for (i in array) {
      var combined=new array();
      combined = array[i].date;
                }   
      console.log(combined);

我是javascript的新手,在数组中很难跟上。谢谢有人能给我推荐一本关于javascript的好书吗?

试试这个

var originalArray = [{date:"2012-01-01", username: "first"}, {date:"2012-01-02", username: "second"}];
// First step: Get a dateArray with only the dates
var dateArray = [];
for (var i in originalArray) {
    dateArray.push(originalArray[i].date);
}   
// Or if you prefer to cut a few lines
// dateArray = originalArray.map(function(x) { return x.date; } );
// Second step: Get it as a comma separated string
var datesString = dateArray.join(",");
console.log(dateArray); // ["2012-01-01","2012-01-02"]
console.log(datesString); // 2012-01-01,2012-01-02

其中一本比较受欢迎的书是Douglas Crockford的《Javascript the Good Parts》http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

这里是代码:

var firstArray = new Array(new Date(), "hello", "something", new Date());
var combined = new Array();
for(i in firstArray) {
   if(firstArray[i] instanceof Date) {
      combined[combined.length] = firstArray[i];
   }
 }
 var theString = combined.join(",");
 alert(combined.length);
 alert(theString);

我个人偏爱Javascript的好部分,但有一个关于编程书籍的完整社区wiki。至于你的问题,如果你想使用字符串,你需要使用字符串而不是数组作为组合变量。

array.push({date:created_at,username:user});
var combined = array.map(function(a) { return a.date; }).join(", ");

当然有更好的方法可以做到这一点,但这只是一个可行的快速例子。通过与字符串连接,它将数组[i].date隐式转换为字符串(如果还没有)。

编辑:修正了我的代码不那么糟糕。