基于键值javascript在多个数组中打断数组

基于键值javascript在多个数组中打断数组,javascript,arrays,filter,split,Javascript,Arrays,Filter,Split,我有一个数组,我想根据一个键(K1等键)值(a、AA等值)将其拆分为多个数组。我的例子是: array = [{"K1":"A","K2":"B","k3":"AA"},{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"CC"}] 应返回值AA、BB、CC为分离变量/值的位置。阵列是动态的,因此ik也可能具有例如DD、EE等 array 1= [{"K1":"A","K2":

我有一个数组,我想根据一个键(K1等键)值(a、AA等值)将其拆分为多个数组。我的例子是:

array = [{"K1":"A","K2":"B","k3":"AA"},{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"CC"}]
应返回值AA、BB、CC为分离变量/值的位置。阵列是动态的,因此ik也可能具有例如DD、EE等

array 1= [{"K1":"A","K2":"B","k3":"AA"}]
array 2= [{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"BB"}]
array 3= [{"K1":"A","K2":"B","k3":"CC"}]

如何实现这一点

仍然很难理解您实际试图基于什么进行拆分,但这里有一些通用代码可以帮助您编写/尝试一些东西。您可以尝试在数组中循环,并根据下面的常规逻辑将对象推送到新的拆分数组中

// initial array
const array = [{"K1":"A","K2":"B","k3":"AA"},{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"BB"},{"K1":"A","K2":"B","k3":"CC"}];

// split arrays
const array1 = [];
const array2 = [];
const array3 = [];

array.forEach(obj => {
  // if statements or switch statement depending on how you want to split
  switch(obj.k3) {
    case 'AA':
      array1.push(obj);
      break;
    case 'BB':
      array2.push(obj);
      break;
    case 'CC':
    default:
      array3.push(obj);
      break;
  }
});

假设所有数组元素上的键顺序相同,可以使用
reduce
生成对象。使用
object.values

var数组=[{“K1”:“A”,“K2”:“B”,“k3”:“AA”},{“K1”:“A”,“K2”:“B”,“k3”:“BB”},{“K1”:“A”,“K2”:“B”,“k3”:“BB”},{“K1”:“A”,“K2”:“B”,“k3”:“CC”});
[array1,array2,array3]=对象值(array.reduce((c,v)=>{
让k=Object.values(v).join(“”);//使用值作为键。
c[k]=c[k]| |[];
c[k].推力(v);
返回c;
},{}))
console.log(“array1”,array1);
console.log(“array2”,array2);

控制台日志(“array3”,array3)请向我们展示您已经尝试过的内容。以及,“key-value”是什么意思还不太清楚。@AaronChristiansen我很想知道,但我对javascript还不熟悉。我一直在研究split函数,但它不包括键value@JLivengood编辑我的问题我猜您正在寻找一个类似的
groupBy
-函数。但是你的问题真的太不清楚了。@J Livengood这似乎是一个解决方案,它可以根据数组的可变长度而变得动态吗?另外,我编辑了我的问题,试图让它更清楚,对不起,我是个笨蛋