如何使用 Javascript 按键过滤一个数组并将值推入另一个数组?

4

这是我的第一个数组

data=  [{
  "id":1111,
  "date":"2020-08-03T08:00:00+00:00",
  "age":23,
   "email":"test@yahoo.com",
   "address":"phill road",
   "salary":1222.00
},

 {
  "id":222,
  "date":"2020-08-03T08:00:00+00:00",
  "age":24,
   "email":"tes22t@yahoo.com",
   "address":"phill2222 road",
   "salary":3344
}
]

第二个数组应该长成这样

  dataNew=  [1222.00,3344]

我需要一个只包含薪资数值的第二个数组。如何过滤第一个数组,如果键名 = "salary",则将其值推送到新数组中。搜索了很多建议,但似乎都不适用于我的情况..

5个回答

4

data=  [{
  "id":1111,
  "date":"2020-08-03T08:00:00+00:00",
  "age":23,
   "email":"test@yahoo.com",
   "address":"phill road",
   "salary":1222.00
},
 {
  "id":222,
  "date":"2020-08-03T08:00:00+00:00",
  "age":24,
   "email":"tes22t@yahoo.com",
   "address":"phill2222 road",
   "salary":3344
},
 {
  "id":223,
  "date":"2020-08-03T08:00:00+00:00",
  "age":24,
   "email":"tes22t@yahoo.com",
   "address":"phill2222 road"
}
]

console.log(data.filter(e => e.salary).map(e => e.salary));


3

data=  [{
  "id":1111,
  "date":"2020-08-03T08:00:00+00:00",
  "age":23,
   "email":"test@yahoo.com",
   "address":"phill road",
   "salary":1222.00
},

 {
  "id":222,
  "date":"2020-08-03T08:00:00+00:00",
  "age":24,
   "email":"tes22t@yahoo.com",
   "address":"phill2222 road",
   "salary":3344
}]

data.map(item =>  item.salary)


3

你可以在数组上使用.map()方法。

data.map(item => item.salary)

3

这个

data = [{
    "id": 1111,
    "date": "2020-08-03T08:00:00+00:00",
    "age": 23,
    "email": "test@yahoo.com",
    "address": "phill road",
    "salary": 1222.00
  },

  {
    "id": 222,
    "date": "2020-08-03T08:00:00+00:00",
    "age": 24,
    "email": "tes22t@yahoo.com",
    "address": "phill2222 road",
    "salary": 3344
  }
]
arr = []
for (i = 0; i < data.length; i++) {
  console.log(data[i]['salary'])
  arr.push(data[i]['salary']);
}
console.log(arr)


3
data=  [{
  "id":1111,
  "date":"2020-08-03T08:00:00+00:00",
  "age":23,
   "email":"test@yahoo.com",
   "address":"phill road",
   "salary":1222.00
},

 {
  "id":222,
  "date":"2020-08-03T08:00:00+00:00",
  "age":24,
   "email":"tes22t@yahoo.com",
   "address":"phill2222 road",
   "salary":3344
}
]
const dataNew=[]
data.map(item=>item.salary?dataNew.push(item.salary):null)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接