js 对象数组按该数组中某一元素顺序输出该数组

arr1=["柳州供电设备厂", "国电南京自动化股份有限公司", "广西电力线路器材厂", "南瑞继保电气有限公司", "河南平高电气股份有限公司", "西安西电高压开关有限责任公司", "南京南瑞继保电气有限公司", "上海华明电力设备制造有限公司", "江苏省如高高压电器有限公司", "平高集团有限公司"]
arr2=[{VENDERNAME: "上海华明电力设备制造有限公司", CNT: 82},
{VENDERNAME: "西安西电高压开关有限责任公司", CNT: 103},
{VENDERNAME: "平高集团有限公司", CNT: 84},
{VENDERNAME: "国电南京自动化股份有限公司", CNT: 211},
{VENDERNAME: "南瑞继保电气有限公司", CNT: 178},
{VENDERNAME: "江苏省如高高压电器有限公司", CNT: 105},
{VENDERNAME: "南京南瑞继保电气有限公司", CNT: 137},
{VENDERNAME: "柳州供电设备厂", CNT: 324},
{VENDERNAME: "河南平高电气股份有限公司", CNT: 114},
{VENDERNAME: "广西电力线路器材厂", CNT: 330}]

希望arr2可以按arr1的顺序输出,求指教

阅读 3.7k
4 个回答
var arr3= [];
arr1.forEach(function(val) {
    arr2.forEach(function(val1){
        if(val===val1.VENDERNAME){
           arr3.push(val1);
        }
    })   
});
console.log(arr3)

let arr3=[]
arr1.forEach((val)=>{
arr2.forEach((v,i)=>{

val === v.VENDERNAME &&  arr3=arr2.splice(i,1)

})
})
arr3就是你要的数组

function sort(arr1, arr2) {
    var nArr = []
    var map = new Map
    arr2.forEach((item) =>{ map.set(item.VENDERNAME,item)})
    arr1.forEach((item) => { nArr.push( map.get(item) )})
    return nArr
}
const arr = []
arr1.map(item => {
  arr2.map(v => {
    if (v.VENDERNAME ===item) {
      arr.push(v)
    }
  })
})
console.log(arr)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题