Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 如何在没有内置方法的情况下,获取用逗号分隔的对象数组中的所有值和键_Javascript_Arrays - Fatal编程技术网

Javascript 如何在没有内置方法的情况下,获取用逗号分隔的对象数组中的所有值和键

Javascript 如何在没有内置方法的情况下,获取用逗号分隔的对象数组中的所有值和键,javascript,arrays,Javascript,Arrays,我尝试检索一个普通对象的所有值,该对象返回一个用逗号分隔的数组,因为我正在使用map() 其中,我需要所有值和键作为字符串,用逗号从对象数组下面分隔,而不使用object.values()和object.keys input: var items = [{1:"Banana"}, {2:"Orange"}, {3:"Apple"}] output 1: "1,2,3" ---> keys output 2: "Banana,Orange,Apple" --> values 问

我尝试检索一个普通对象的所有值,该对象返回一个用逗号分隔的数组,因为我正在使用map()

其中,我需要所有值和键作为字符串,用逗号从对象数组下面分隔,而不使用object.values()和object.keys

 input: var items = [{1:"Banana"}, {2:"Orange"}, {3:"Apple"}]
 output 1: "1,2,3" ---> keys
 output 2: "Banana,Orange,Apple" --> values
问题是,当对象位于数组中时,我不知道如何分别检索键和对象值


请帮忙

您可以使用数组reduce&
join
在内部reduce回调中,使用
for..in
迭代对象
[[],[]
是累加器&在第一个数组中,将收集键,在第二个数组中,将收集值

在..的
按每个对象的

完成后,使用带分隔符的
连接
创建字符串

var项目=[{
1:“香蕉”
}, {
2:“橙色”
}, {
3:“苹果”
}]
设VAL=项目.减少(功能(acc,curr){
for(以当前格式输入键){
acc[0]。按(键);
acc[1]。按(当前[键])
}
返回acc;
}, [
[],
[]
]);
console.log(VAL[0]。使用and函数连接(',),VAL[1]。连接(',)

const items = [{1:"Banana"}, {2:"Orange"}, {3:"Apple"}];
let keys = [];
let values = [];
for(let item of items){
  for(let key in item){
    keys.push(key);
    values.push(item[key]);
  }
}
// keys == [1, 2, 3]
// values == [Banana, Orange, Apple]
在此之后,您可以使用该函数


正在为…使用
。。。在

const项=[{
1:“香蕉”
}, {
2:“橙色”
}, {
3:“苹果”
}];
让键=“”;
让值=“”;
项目。forEach((x)=>{
for(让y代表x){
keys=`${keys}${keys.length?',':''}${y}`;
values=`${values}${values.length?',':''}${x[y]}`;
}
});
控制台日志(键);

console.log(值)您可以迭代数组,并在嵌套for循环中迭代对象:

var items=[{1:Banana},{2:Orange},{3:Apple}];
让键=[];
让值=[];
for(项目的let元素){
for(让我加入元素){
按键(i);
push(元素[i]);
}
}
keys=keys.join(“,”);
values=values.join(“,”);
控制台日志(键);

console.log(值)请看这里:你可以使用for…of和for…在你不想使用Object.values和Object.keys的方法中?@NinaScholz我有一个对象数组,我尝试过使用它,但我在迭代使用for时得到了对象。我的问题是关于没有内置类型的对象数组。如果持续出现,则显示复制链接对象位于阵列内
const items = [{1:"Banana"}, {2:"Orange"}, {3:"Apple"}];
let keys = [];
let values = [];
for(let item of items){
  for(let key in item){
    keys.push(key);
    values.push(item[key]);
  }
}
// keys == [1, 2, 3]
// values == [Banana, Orange, Apple]
console.log(keys.join()); // Output : "1,2,3"
console.log(values.join()); // Output : "Orange,Banana,Apple"