【问题标题】:how to get array according to conditions in javascript如何根据javascript中的条件获取数组
【发布时间】:2020-08-14 09:18:49
【问题描述】:

我的数组是这样的

var data=[{PRODUCT : P1}, {PRODUCT: P2}]

我想把它转换成 [P1, P2]。 有时我的数组是这样的

var data=[{ITEM: I1, QUANTITY:1}, {ITEM: I2, QUANTITY:2}]

我想把它转换成 [I1, I2]。

所以我们可以创建一个通用函数,我只想提取数组的特定值并创建一个新数组。 p.s.提前谢谢你


我试着写这样的逻辑:

data.map((d, index) => { var result= [];
               result.includes(d[0]); })

但它不是动态的

【问题讨论】:

    标签: javascript arrays json


    【解决方案1】:

    您可以定义一个函数,该函数将始终获取第一个对象键的第一个值,这应该满足您基于上述的需求

    var data1 = [{
      ITEM: 'I1',
      QUANTITY: 1
    }, {
      ITEM: 'I2',
      QUANTITY: 2
    }]
    
    var data2 = [{
      PRODUCT: 'P1'
    }, {
      PRODUCT: ' P2'
    }]
    
    function getArrayOfValues(list) {
      return list.reduce((acc, x) => {
        const firstValue = Object.values(x)[0];
        acc.push(firstValue)
        return acc;
      }, [])
    }
    
    const result1 = getArrayOfValues(data1)
    console.log(result1)
    
    const result2 = getArrayOfValues(data2)
    console.log(result2)

    【讨论】:

    • 但有时它在第一个位置有时在另一个位置。
    • 你需要指定属性,你不能通用...
    【解决方案2】:
    function getProductOrItem(list) {
          return list.reduce((accumulator, obj) => {
            if (obj.PRODUCT) {
                accumulator.push(obj.PRODUCT);
            } else if (obj.ITEM) {
                accumulator.push(obj.ITEM);
            }
            return accumulator;
          }, [])
        }
    

    【讨论】:

      【解决方案3】:

      您可以使用 map() 方法遍历您的数组,并在其中提取数组中对象的第一个实体的值,然后简单地获取一个包含所有值的新数组:

      const data1 =[{PRODUCT : 'P1'}, {PRODUCT: 'P2'}]
      const data2 = [{ITEM: 'I1', QUANTITY: 1}, {ITEM: 'I2', QUANTITY: 2 }]
      const transformValuesOfArray = (arrayToTransform) => 
      arrayToTransform.map(value => {
       const firstObjectValue = Object.values(value)[0]
       return firstObjectValue
      })
      console.log(transformValuesOfArray(data1))
      console.log(transformValuesOfArray(data2))

      【讨论】:

        猜你喜欢
        • 2020-10-28
        • 2020-12-04
        • 2022-09-27
        • 2021-11-13
        • 2014-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-13
        相关资源
        最近更新 更多