如何从本机中的另一个数组中获取数组值?

时间:2018-12-17 10:18:19

标签: javascript arrays

在这段代码中,我希望centerValues中的值来自其他数组

    const centreValues=[
  {
    title:'Type',
    value:centreDetail.location_type
  },
  {
    title:'Address',
    value:centreDetail.address1+centreDetail.address2
  },
  {
    title:'City',
    value:centreDetail.city
  },
  {
    title:'State/Province',
    value:centreDetail.state
  },
  {
    title:'Postal/Zipcode',
    value:centreDetail.zip
  },
  {
    title:'Phone',
    value:centreDetail.phone
  },
]

我的centerDetails是这样的json:

centreDetails={
   location_type:'some Value',
   address1: 'some Value',
   address2:'some Value',
   ....
}

我想将这些值带入centerValues数组中。我该怎么做?

3 个答案:

答案 0 :(得分:0)

获取centerDetail的所有值作为对象结果

centreValues.map(x=>x.value.centreDetail)  

要转移到另一个阵列,请按以下方式管理状态:

centreValues.map(x=> this.setState({ centreDetailArray: [...this.state.centreDetailArray, x.value.centreDetail] })

然后您可以从如下状态获取结果:

<View>  
  {this.state.centreDetailArray.map(x=><Text>{x}</Text>)}
</View>

答案 1 :(得分:0)

它提供了一个简单的JS对象和数组方案。根据您提供的数组,您似乎希望拥有centreDetail。看看我下面的例子

const centreDetail = {
     location_type: "something",
    city: "something",
    state: "something",
    zip: "something",
    phone: "something",
}

现在您可以在数组中调用以下上述对象

const centreValues=[
  {
    title:'Type',
    value:centreDetail.location_type
  },

  {
    title:'City',
    value:centreDetail.city
  },
  {
    title:'State/Province',
    value:centreDetail.state
  },
  {
    title:'Postal/Zipcode',
    value:centreDetail.zip
  },
  {
    title:'Phone',
    value:centreDetail.phone
  },
]

编辑:您现在在问题中添加了json。因此,您需要一个循环。使用for循环或while遍历数组的每个索引并添加到​​其他数组中。您也可以使用map

根据您的评论进行编辑。你确定吗。看到我在控制台中输入了所有这些。似乎有效。

enter image description here

答案 2 :(得分:0)

这是您可以实现的方式:

const centreDetails = {
   location_type:'my location',
   address1: 'an address',
   address2: 'another address',
   phone: '516546548',
   city: 'Wakanda'
}

const centreValues = Object.entries(centreDetails).map(([title, value]) => ({ title, value}))

console.log(centreValues)

您将必须将对象转换成由使用Object.entries()制成的键和值对组成的数组

那么,您只有在阵列上使用map并创建所需的结构


编辑
如果只需要某些字段,则可以应用其他过滤器功能:

const centreDetails = {
    location_type: 'my location',
    address1: 'an address',
    address2: 'another address',
    phone: '516546548',
    city: 'Wakanda'
}

const desiredValues = ["location_type", "address2", "city"]

const centreValues = Object.entries(centreDetails)
    .filter(([title, value]) => !!desiredValues.includes(title)) //Checks if the value exists
    .map(([title, value]) => ({ title, value}))

console.log(centreValues)


编辑2:

如果您要使用其他别名,可以采用以下方法:

const centreDetails = {
    location_type: 'my location',
    address1: 'an address',
    address2: 'another address',
    phone: '516546548',
    city: 'Wakanda'
}

const desiredValues = {
    "location_type" : "location",
    "address2": "this guy\'s second address",
    "city": "Hey, he lives here !"
}

const centreValues = Object.entries(centreDetails)
    .filter(([title, value]) => desiredValues[title])
    .map(([title, value]) => ({ title : desiredValues[title], value}))

console.log(centreValues)