Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
354 views
in Technique[技术] by (71.8m points)

JS 如果A数组里的a值,跟B数组的a值相同,就取B数组里的B值跟A数组的B值组成新数组。

A数组如下
image.png

B数组

Bdata: [
    {
        parameter: "c",
        value: 0
    },
    {
        parameter: "orp",
        value: 2
    },
    {
        parameter: "user_id",
        value: 4
    },
]

A数组里的c跟B数组的某个值相同,比如“c”,就取A数组的水温+B数组的0,组成一个新数组。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

你所谓的另外一个表或者数组的具体结构是怎么样的,或者另外的是一个对象形式的数据结构,则可能可以直接对象查询。
比如你的sysdevice_data_life对象,其具体定义是:

sysdevice_data_life={
"nh3_n":"氨氮",
"conductivity":"电导率"
....
}

则这样的转换很简单,直接:sysdevice_data_life[ "<英文名>" ]即可啊。


以上回答老问题情况


你换了题目啦,这个其实就是一个查找匹配的问题,但你没有说新值的数据结构,还是数组,或者变成对象结构,从你的要求来说,其实新的集合采用对象更方便。

而且这个转换也没有你想象中那么复杂,大致也就下面这样几个步骤

  1. 遍历A数组转换为一个对象C(这样方便查询),键名是A数组子元素中第一个值即column_name的值,值为第二个值即column_comment的值,一个完整的C对象中一个键值对为A[i][column_name] : A[i][column_comment]
  2. 遍历数组B,并构建新对象D,键名为C[ B[i][parameter] ],对应值为 B[i][value],一个完整的D对象中的一个键值对为C[ B[i][parameter] ]: B[i][value]
  3. 注意构建D时,如果C[ B[i][parameter] ]不存在定义,则退化为 B[i][parameter]: B[i][value]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...