Javascript数组检查值并分配到数组中

标签 javascript angularjs arrays

所以,我有一个 PHP 函数,它将读取 csv 文件,然后将其传递给 angularJS。

csv文件内部有4种类型的数据

[0] => Number,
[1] => Code,
[2] => Description,
[3] => Qty

但是,还有“面积”数据。 “区域”将位于“数字”[2]

[0] => "",
[1] => "",
[2] => Area,
[3] => ""

这是插图

//Part 1
"","","Area 1",""
"No","Code","Description","QTY"
"No","Code","Description","QTY"
"No","Code","Description","QTY"
"No","Code","Description","QTY"
"No","Code","Description","QTY"
//Part 2
"","","Area 2",""
"No","Code","Description","QTY"
"No","Code","Description","QTY"
"No","Code","Description","QTY"
"No","Code","Description","QTY"
//And so on

我想要实现的是,如何获取该区域,然后通过检查 [0] 是否为空且 [2] 不为空,然后将其插入数组中,那么它就是数组对象其余部分的区域,一旦检测到与之前相同的条件,它将为另一个部分分配新区域。

这是我的数组,名为 vm.products

for (var index = 0; index < resp.data.csv.length; index++) {
   vm.products.push({
      code: resp.data.csv[index][1],
      qty: resp.data.csv[index][3], 
      //area: resp.data.csv[index].area,
      description: resp.data.csv[index][2]
   });
}

感谢您提供的任何帮助:)

最佳答案

首先,您必须检查当前条目是否包含该区域。如果是这样,请将其存储起来,直到下一个区域到来。发生这种情况时,只需用新区域替换旧区域即可。

将产品推送到数组时,只需使用 Area 变量,因为它始终包含正确的 Area。

var area = “”;
for (var index = 0; index < resp.data.csv.length; index++) {
    var current = resp.data.csv[index];
    if (current[2] != “” && (!current[0] || current[0] == "") {
        area = current[2];
    } else {
        vm.products.push({
            code: current[1],
            qty: current[3], 
            area: area,
            description: current[2]
        });
    }
}

此解决方案将仅在数组上循环一次,而不是在下面的答案中首先使用 map 时循环多次。

关于Javascript数组检查值并分配到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38791548/

相关文章:

PHP访问对象的数据

javascript - 我如何更改 :hover status on an element when a different element is hovered over?

python - 在 Python 2.7 中将 bytearray 解释为 longs 数组

javascript - 这段代码是做什么用的? (只是好奇)

javascript - Angularjs 隐藏 显示 干净的编码

Ios 状态栏与 ionic 标题栏重叠

javascript - $scope 变量拒绝更改 wavesurfer 函数处理程序中的值

android - Noob 有多个安卓问题

javascript - 无法获取文本值

javascript - 单击同一类的多个实例不起作用