Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据JS中的另一个数组对数组的一部分进行排序_Javascript_Arrays - Fatal编程技术网

Javascript 根据JS中的另一个数组对数组的一部分进行排序

Javascript 根据JS中的另一个数组对数组的一部分进行排序,javascript,arrays,Javascript,Arrays,我见过类似的问题。但我试图根据另一个数组的值对数组进行部分排序 以下是我想要的: let array = [ { name: "Foo", values: [a, b, c, d] }, { name: "Bar", values: [x, y] }, { name: "FooBar", values: [k, l, m] }, { name: "BarBar", values: [m, n] } ]

我见过类似的问题。但我试图根据另一个数组的值对数组进行部分排序

以下是我想要的:

let array = [
  {
    name: "Foo",
    values: [a, b, c, d]
  },
  {
    name: "Bar",
    values: [x, y]
  },
  {
    name: "FooBar",
    values: [k, l, m]
  },
  {
    name: "BarBar",
    values: [m, n]
  }
]

所需输出为:

let desiredOutput = [
  {
    name: "BarBar",
    values: [m, n]
  },
  {
    name: "Bar",
    values: [x, y]
  },
  {
    name: "Foo",
    values: [a, b, c, d]
  },
  {
    name: "FooBar",
    values: [k, l, m]
  }
]
数组仅基于两个值进行排序,并且每隔一个元素遵循相同的顺序


我想知道是否有可能做到这一点

若数组中存在元素,可以使用
sort
方法首先按条件排序,若元素确实存在,还可以按索引排序

let数组=[{name:“Foo”,},{name:“Bar”,},{name:“FooBar”,},{name:“BarBar”,}]
让排序=[“BarBar”,“Bar”]
array.sort((a,b)=>{
设iA=sort.indexOf(a.name);
设iB=sort.indexOf(b.name);
返回((iB!=-1)-(iA!=-1))| | iA-iB
})
console.log(数组)
let数组=[
{
姓名:"富",,
值:“[a、b、c、d]”
},
{
名称:“酒吧”,
值:“[x,y]”
},
{
名称:“FooBar”,
值:“[k,l,m]”
},
{
姓名:“芭芭拉”,
值:“[m,n]”
}
]
让排序=[“BarBar”,“Bar”]
const sortWithAnotherArray=(arr,sortBy)=>{
让begin=sortBy.map(e=>arr.filter(v=>v.name==e))
let end=arr.filter(e=>sortBy.includes(e.name))
返回开始+结束
}
log(sortwithotherarray(array,sort))
let desiredOutput = [
  {
    name: "BarBar",
    values: [m, n]
  },
  {
    name: "Bar",
    values: [x, y]
  },
  {
    name: "Foo",
    values: [a, b, c, d]
  },
  {
    name: "FooBar",
    values: [k, l, m]
  }
]