通过一个属性,找到对象里的另一个属性

有一个数组里包着一堆对象,对象里的属性有label和value,已知一个label的值,想找到它在对象里对应的value的值怎么找

例如:图片中的value,想要找到对应的label图片描述

阅读 9k
7 个回答

用数组的 filter 筛选,看下面的例子。

var array = [
    {label: '山东省', value: '370000'},
    {label: '吉林省', value: '220000'},
    {label: '湖南省', value: '430000'}
]
function getValue(label, arr) {
    var filterArray = arr.filter(function(v) {
        return v.label === label
    })
    if (filterArray.length) {
        return filterArray[0].value
    }
}

var value = getValue('山东省', array);
console.log(value)
const findLabel = (arr, value) => arr.find(obj => obj.value === value).label

假设label的值为123,对象名objData

objData.forEach(val,index=>{
    if(val.label==123){
        var newVal=val.value;//此时的newVal就是要找的值
    }
})

var label = 'xxx';
var value;
objData.some(function (item) {
    if ( item.label === label) {
        value = item.value;
        return true;
    }
});
新手上路,请多包涵
const findByLabel = (d, label)=>{
    let o = d.find(v=>v.label == label)
    return o? o.value:undefined
}
var data = [
    {label: '广东省', value: 0},
    {label: '吉林省', value: 1},
    {label: '湖南省', value: 2},
    {label: '广西', value: 3}
]

findByLabel(data, "广东省") //得到 0
findByLabel(data, "a")     //得到 undefined

var data = [
        {label: '广东省', value: 0},
        {label: '吉林省', value: 1},
        {label: '湖南省', value: 2},
        {label: '广西', value: 3}
    ]

    function getValue(label) {
        for(var v of data){
            if(label==v.label){
                console.log(v.value)
            }
        }
    }
    getValue("广东省"); //0
var array = [
    { label: '山东省', value: '370000' },
    { label: '吉林省', value: '220000' },
    { label: '湖南省', value: '430000' }
]
const labelToValue = {}
for (let i of array) {
    labelToValue[i.label] = i.value
}

console.log(labelToValue['山东省'])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题