使用javascript/jquery将CSV拆分为对象

使用javascript/jquery将CSV拆分为对象,javascript,jquery,arrays,parsing,csv,Javascript,Jquery,Arrays,Parsing,Csv,我有一个有序数组,如下所示:- [-0.0020057306590257895, 50, 0.09598853868194843, 50, 0.19398280802292264, 49.99999999999999, 0.2919770773638969, 50] 我想做的是: 取每个“奇数”项,使其成为对象中的“关键索引”,可以通过将值四舍五入并乘以10来实现,例如(数学舍入(-0.0020057306590257895*10)应为索引0,而数学舍入(0.0959885386819484

我有一个有序数组,如下所示:-

[-0.0020057306590257895, 50, 0.09598853868194843, 50, 0.19398280802292264, 49.99999999999999, 0.2919770773638969, 50]
我想做的是:

  • 取每个“奇数”项,使其成为对象中的“关键索引”,可以通过将值四舍五入并乘以10来实现,例如(数学舍入(-0.0020057306590257895*10)应为索引0,而数学舍入(0.09598853868194843*10)应为索引1等)
  • 取“偶数”值并使其成为对象中的对应值
所以

上述CSV文件应返回以下对象:-

{
  0: 50,
  1: 50,
  2: 49.99999999999999,
  3: 50
}

有人知道我如何使用jQuery或纯javascript解析此CSV以生成所需的数组吗?

我假设您在尝试使用
.split(“,”
的注释中说过,您已经做了一些事情,将CSV文件读入字符串

var csv=“-0.0020057306590257895,50,0.09598853868194843,50,0.1939828080229264,49.9999999999,0.291977073638969,50”;
var arr=csv.split(“,”);
var obj={};
对于(变量i=0;i
您可能应该首先检查数组中是否有偶数个元素,例如
if(arr.length%2==0)

你应该做的是:

  • {}
    大括号用于定义对象,一对空大括号的含义与
    新建对象()相同,但建议使用大括号
  • []
    方括号可用于定义数组或通过其索引(如
    arr[0]
    )对数组元素进行寻址,并通过其键(如
    obj['name']
    )对对象的属性进行寻址
  • 要删除键值对,请执行以下操作:

    delete obj[key];
    

    希望这有帮助。

    如果您的数据结构保证每个整数都有一个值(即在偶数列中不会从3.9直接跳到5.9),您可以节省一些工作并使用

    var arr = "-0.0020057306590257895, 50, 0.09598853868194843, 50, 0.19398280802292264, 49.99999999999999, 0.2919770773638969, 50".split(",");
    var result = [];
    
    for (index = 0; index < arr.length - 1; index += 2) {
        result.push(parseFloat(arr[index + 1]));
    }
    
    var arr=“-0.0020057306590257895,50,0.09598853868194843,50,0.1939828080229264,49.9999999999,0.291977073638969,50”。拆分(,”;
    var结果=[];
    对于(索引=0;索引

    注意-由于使用了parseFloat,因此它的值也是数字而不是字符串。您的研究工作在哪里?我尝试过使用javascript“split”函数,但没有成功。到目前为止,我看到的每个方法都使用这个函数。我确信我遗漏了一些简单的东西,但是string.split(',')会导致javscript错误。split不是每次我尝试使用它时都使用的函数。我确信这只是因为我没有足够好的普通javascript图形,因此希望有人能给我指出正确的方向。一些javascript术语:
    {}
    是一个“对象”或“散列”,它们有键/值对
    []
    是一个“数组”,它只是一个有序列表,这些列表没有键。我想问题应该是如何将其转换为具有我需要的索引的对象。我为糟糕的术语表示歉意,这是因为我缺乏经验。@gordyr不用担心,因为Javascript是松散类型的,很难找出有意义的区别。太好了。。。这正是我所需要的,实际上比我想象的要简单得多。谢谢你给我一个清晰明了的答案,以及一些很好的个人经验教训。:-)另一个好答案,谢谢你,英迪卡夫。。。。不幸的是,nwellcome比你快了几分钟,他的解决方案正好满足了我的需要(顺便说一句,你的解决方案也是如此。)谢谢你花时间回答。:-)
    var keyVal = obj[key];
    
    delete obj[key];
    
    var arr = "-0.0020057306590257895, 50, 0.09598853868194843, 50, 0.19398280802292264, 49.99999999999999, 0.2919770773638969, 50".split(",");
    var result = [];
    
    for (index = 0; index < arr.length - 1; index += 2) {
        result.push(parseFloat(arr[index + 1]));
    }