jQuery:将属性值转换为嵌套数组(字符串转换为数字)

jQuery: Convert Attribute Values to Nested Array (Strings to Numbers)

本文关键字:转换 字符串 数字 数组 嵌套 属性 jQuery      更新时间:2023-09-26

使用jQuery,我想获得每个属性值,将其插入一个数组,然后将每个数组插入一个阵列。

从这个HTML:

   <ul>
        <li data-bbox="-121,20,-36,30">Item 1</li>
        <li data-bbox="-122,30,-46,40">Item 2</li>
        <li data-bbox="-123,40,-56,50">Item 3</li>
    </ul>

我正在尝试创建这种类型的嵌套数组:

var bboxArray = [
    [-121,20,-36,30],
    [-122,30,-46,40],
    [-123,40,-56,50]
];

并将字符串转换为数字。

我想我需要做这样的事情:

var bboxArray = [];
$('li[data-bbox]').each(function() {
  bboxArray.push($(this).attr('data-bbox').split(','));
});

工作示例

当你的代码工作时,它会返回字符串,而不是你所需输出中的数字

我只是在push 的末尾添加了.map(Number)

$('li[data-bbox]').each(function() {
  bboxArray.push($(this).attr('data-bbox').split(',').map(Number));
});

您可以像这样使用.map()方法:

var bboxArray = $('ul > li').map(function() {
    return [ $(this).data('bbox').split(',') ];
}).get();

var bboxArray = $('ul > li').map(function() {
    return [ $(this).data('bbox').split(',') ];
}).get();
console.log( bboxArray );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <ul>
        <li data-bbox="-121,20,-36,30">Item 1</li>
        <li data-bbox="-122,30,-46,40">Item 2</li>
        <li data-bbox="-123,40,-56,50">Item 3</li>
    </ul>