SOURCE

// Method 1
var data = {
	"CE400AF-C": "CE400AF-C",
	"CR400AF-A": "CE400AF-C",
	"CR400AF-B": "CE400AF-C",

	"CR400AF": "CR400AF",
	"CR400AF重联": "CR400AF",
}

function getName(type) {
	return data[type]
}

getName('CE400AF-C') //=> 'CE400AF-C'
getName('CR400AF-A') //=> 'CE400AF-C'
getName('CR400AF-B') //=> 'CE400AF-C'


// Method 2
var data2 = [
	"CR400AF-C|CR400AF-A|CR400AF-B",
	"CR400AF|CR400AF重联",
	"CR400BF|CR400BF重联",
	"CR400BF-C|CR400BF-A|CR400BF-B|CR400BF-G",
	"CRH1B",
	"CRH2A|CRH2A重联",
	"CRH3C",
	"CRH380A|CRH380A重联",
	"CRH380B",
	"CRH380CL",
	"CRH380D|CRH380D重联"
]

function getName2(type) {
	for (d of data2) {
		let temArr = d.split('|');
		if (temArr.includes(type)) {
			return temArr[0]
		}
	}
	return ''
	//return data[type]
}

getName2('CR400BF重联') // =>CR400BF


// Method 3

// 把每一行第一列数据放数组第一个
let data = [
    ['CR400AF-C','CR400AF-A','CR400AF-B'],
    ['CR400AF', 'CR400AF重联'],
    ['CR400BF-C','CR400BF-A','CR400BF-B','CR400BF-G'],
]


function getName(value) {
    let resultArr
    data.forEach(item => {
        if (item.includes(value)) {
            resultArr = item
        } 
    })
    return resultArr[0]
}

console.log(getName('CR400AF重联'))


// method 4

listData: [{
		type: 'CR400AF-C',
		arr: [
			'CR400AF-A',
			'CR400AF-B',
			'CR400AF-C'
		]
	}, {
		type: 'CR400AF',
		arr: [
			'CR400AF',
			'CR400AF重联'
		]
	}, {
		type: 'CR400BF',
		arr: [
			'CR400BF重联',
			'CR400BF'
		]
	}, {
		type: 'CR400BF-C',
		arr: [
			'CR400BF-C',
			'CR400BF-A',
			'CR400BF-B',
			'CR400BF-G'
		]
	}, {
		type: 'CRH1B',
		arr: [
			'CRH1B'
		]
	}
]

chooseType(type) {
	let choosedName = ''
		for (let i = 0; i < this.allData.length; i++) {
			if (this.allData[i].arr.indexOf(type) > -1) {
				choosedName = this.allData[i].type;
				break;
			}
		}
		return choosedName;
}


// method 5
var data = {
	"CR400AF-C": {
		"CR400AF-A": 1,
		"CR400AF-B": 1
	},
	"CR400AF": {
		"CR400AF重联": 1
	},
	"CR400BF": {
		"CR400BF": 1,
		"CR400BF重联": 1
	},
	"CR400BF-C": {
		"CR400BF-A": 1,
		"CR400BF-B": 1,
		"CR400BF-G": 1
	},
	"CRH1B": {
		"CRH1B": 1
	},
	"CRH2A": {
		"CRH2A": 1,
		"CRH2A重联": 1
	},
	"CRH3C": {
		"CRH3C": 1
	},
	"CRH380A": {
		"CRH380A": 1,
		"CRH380A重联": 1
	}
};

function nameFun(name) {
	if (data[name]) {
		return name;
	}
	for (let item in data) {
		if (data[item][name]) {
			return item;
			break;
		}
	}
}

// method 6
getName = (type) => {
	const list = [['CR400F-C', 'CR400F-A', 'CR400F-B'], ['CR400AF', 'CR400AF', 'CR400AF重联']]
	let item = []
	list.forEach(element => {
		element.forEach(ele => {
			if (type == ele) {
				item = element
					return
			}
		});
	});
	return item[0]
}

getName2 = (type) => {
	const list = [{
			'CR400F-C': ['CR400F-C', 'CR400F-A', 'CR400F-B']
		}, {
			'CR400AF': ['CR400AF', 'CR400AF重联']
		}
	]
	let name = ''
		list.forEach(element => {
			const itemKey = Object.keys(element)[0]
				const hasType = element[itemKey].find(ele => ele == type)
				if (hasType) {
					name = itemKey
						return
				}
		});
	return name
}


// method 7
let arr2=[];
let arr=['CR400AF-C','CR400AF-B', 'CR400AF-A'];
arr.forEach((value, key) => {
    let arr1=[value,'CR400AF-C'];
        arr2.push(arr1)
})
var map = new Map(arr2);

map.get('CR400AF-B') 



// method 8
function getValue(str){
  if(str.indexOf('-') !== -1){
    const charIndex = str.indexOf('-')
    return str.substring(0, charIndex) + '-C'
  } else if(str.indexOf('重联') !== -1){
    return str.replace('重联', '')
  } else {
    return str
  }
}


// method 9
var check  =  (value) => {
	var reg  =  new RegExp("[\\u4E00-\\u9FFF]+", "g");
	if(!!~value.indexOf('-')){
		const _value  =  value.split('-');
		return  `${_value[0]}-C`
	}
	else if (reg.test(value)){
		return value.replace(reg,   "")
	}
	else {
		return value
	}
}

// method 10
var search = function (inputVal) {
	if (inputVal && inputVal.includes('-')) {
		return inputVal.replace(/-[A-Za-z]+$/, '-C')
	} else {
		return inputVal.match(/^[A-Za-z0-9]+/g)[0]
	}
}

var app = new Vue({
		el: '#app',
		data: {
			inputVal: '',
			result: '',
		},
		methods: {
			search: function (e) {
				e.preventDefault();
				if (this.inputVal && this.inputVal.includes('-')) {
					console.log(this.inputVal)
					this.result = this.inputVal.replace(/-[A-Za-z]+$/, '-C')
				} else {
					this.result = this.inputVal.match(/^[A-Za-z0-9]+/g)[0]
				}
				this.inputVal = '';
			},
		}
	});
	
// method 11
var app = new Vue({
  el: '#app',
  data: {
    inputVal: '',
    result: '',
    codes: [
        "CR400AF-C",
        "CR400AF",
        "CR400BF",
        "CR400BF-C",
        "CRH1B",
        "CRH2A",
        "CRH3C",
        "CRH380A",
        "CRH380B",
        "CRH380CL",
        "CRH380D"],
    allCodes: [
        "CR400AF-C",
        "CR400AF-A",
        "CR400AF-B",
        "CR400AF",
        "CR400AF重联",
        "CR400BF",
        "CR400BF重联",
        "CR400BF-C",
        "CR400BF-A",
        "CR400BF-B",
        "CR400BF-G",
        "CRH1B",
        "CRH2A",
        "CRH2A重联",
        "CRH3C",
        "CRH380A",
        "CRH380A重联",
        "CRH380B",
        "CRH380CL",
        "CRH380D",
        "CRH380D重联"
    ]
  },
  methods: {
    search: function(e) {
      e.preventDefault();
      var searchtext = this.inputVal;
      if(!searchtext || !this.allCodes.includes(searchtext)) { // 判空
          this.result = ''
          alert('不存在!')
          return
      }
      if(searchtext.includes('-')) { // 对 - 进行特殊处理
          this.result = searchtext.split('-')[0] + '-C'
      }
      else if (searchtext) { // 过滤
        this.result = this.codes.filter(function(code) {
            return searchtext.includes(code)
        })[0]
      }
    },
  }
});

// method 12

function search(type){
    let day;
    switch (type) {
        case 'CR400BF': 
            day = 'CR400BF';
        break;
        case 'CR400AF-A': 
        case 'CR400AF-C': 
        case 'CR400AF-D': 
        case 'CR400AF-B': 
            day = 'CR400AF-C';
        break;
        case 'CR400AF': 
            day = 'CR400AF';
        break; 
    }
    return day
}

console 命令行工具 X clear

                    
>
console