Javascript 如何在对象数组中找到字符长度最长的对象键
假设我有一个这样的对象集合Javascript 如何在对象数组中找到字符长度最长的对象键,javascript,arrays,node.js,object,Javascript,Arrays,Node.js,Object,假设我有一个这样的对象集合 var collection = [ { name:"John", age:12, location:"Califonia", gender:"Male" }, { name:"Jane", age:18, location:"New york", gender:"Female" } ] 很明显,“location”是字符长度最长的对象键 但是我如何才能动态地获取此信息,因为我不知道集合
var collection = [
{
name:"John",
age:12,
location:"Califonia",
gender:"Male"
},
{
name:"Jane",
age:18,
location:"New york",
gender:"Female"
}
]
很明显,“location”
是字符长度最长的对象键
但是我如何才能动态地获取此信息,因为我不知道集合将如何提前结构化。您可以通过命令获取特定对象的数组对象键:
Object.keys(<object>)
Object.keys()
循环查找最长的关键点。在您的问题中,需要对数组中的所有对象进行循环您可以通过命令获取特定对象的数组对象键:
Object.keys(<object>)
Object.keys()
循环查找最长的关键点。在您的问题中,您需要对数组中的所有对象进行循环只需使用
object.keys(obj)
循环键,然后选择最长的一个,使用以下功能:
var getLongestKey = function getLongestKey(obj) {
for (key in keys) {
if (keys[key].length > longest.length) {
longest = keys[key];
}
}
}
这是一个工作演示,用于获取数组中所有对象的最长密钥:
var集合=[{
姓名:“约翰”,
年龄:12岁,
地点:“加州”,
性别:“男性”
}, {
姓名:“简”,
年龄:18岁,
地点:“纽约”,
性别:“女性”
}];
var getLongestKey=函数getLongestKey(obj){
用于(输入键){
if(键[key].length>最长.length){
最长=键[键];
}
}
}
对于(i=0;i }
只需使用对象循环键。键(obj)
并拾取最长的键,使用以下功能:
var getLongestKey = function getLongestKey(obj) {
for (key in keys) {
if (keys[key].length > longest.length) {
longest = keys[key];
}
}
}
这是一个工作演示,用于获取数组中所有对象的最长密钥:
var集合=[{
姓名:“约翰”,
年龄:12岁,
地点:“加州”,
性别:“男性”
}, {
姓名:“简”,
年龄:18岁,
地点:“纽约”,
性别:“女性”
}];
var getLongestKey=函数getLongestKey(obj){
用于(输入键){
if(键[key].length>最长.length){
最长=键[键];
}
}
}
对于(i=0;i }
以下代码将以最佳方式解决您的问题:
var sorted=(Object.key(集合[0])).sort(函数(a,b){
返回b.length-a.length;
});
已排序[0];//位置
以下代码将以最佳方式解决您的问题:
var sorted=(Object.key(集合[0])).sort(函数(a,b){
返回b.length-a.length;
});
已排序[0];//位置
如果您确定集合中的项目始终具有相同的结构,则可以简单地执行此操作
var collection = [
{
name:"John",
age:12,
location:"Califonia",
gender:"Male"
},
{
name:"Jane",
age:18,
location:"New york",
gender:"Female"
}
]
function getMaxKeys(collection){
var keys = Object.keys(collection[0]);
var keyWithMaxWidth = keys.reduce(function(prev, current){
if(prev.length > current.length) return prev;
else return current
});
return keyWithMaxWidth;
}
getMaxKeys(collection) //location
如果您确定集合中的项目始终具有相同的结构,则可以简单地执行此操作
var collection = [
{
name:"John",
age:12,
location:"Califonia",
gender:"Male"
},
{
name:"Jane",
age:18,
location:"New york",
gender:"Female"
}
]
function getMaxKeys(collection){
var keys = Object.keys(collection[0]);
var keyWithMaxWidth = keys.reduce(function(prev, current){
if(prev.length > current.length) return prev;
else return current
});
return keyWithMaxWidth;
}
getMaxKeys(collection) //location
可以循环数组中的每个对象,然后循环对象中的每个属性,如下所示:
var collection = [
{
name:"John",
age:12,
location:"Califonia",
gender:"Male"
},
{
name:"Jane",
age:18,
location:"New york",
gender:"Female"
},
{
veryLong: "This key will definitely be the longest"
}
];
var stats = {
key: '',
valLen: 0
};
collection.forEach(function(obj){
for(var prop in obj){
if(obj[prop].length > stats.valLen){
stats.key = prop
stats.valLen = obj[prop].length
}
}
});
console.log(stats.key);
console.log(stats.valLen);
数组中的每个项可能具有不同的格式。
本例将把“veryLong”记录为最长键,39记录为其长度
如图所示,可以循环数组中的每个对象,然后循环对象中的每个属性,如下所示:
var collection = [
{
name:"John",
age:12,
location:"Califonia",
gender:"Male"
},
{
name:"Jane",
age:18,
location:"New york",
gender:"Female"
},
{
veryLong: "This key will definitely be the longest"
}
];
var stats = {
key: '',
valLen: 0
};
collection.forEach(function(obj){
for(var prop in obj){
if(obj[prop].length > stats.valLen){
stats.key = prop
stats.valLen = obj[prop].length
}
}
});
console.log(stats.key);
console.log(stats.valLen);
数组中的每个项可能具有不同的格式。
本例将把“veryLong”记录为最长键,39记录为其长度
使用以下功能查看此:
/**
* Get the longest key in an object.
*/
function longestKey(obj) {
return Object.keys(obj).reduce(function(all, current) {
return all.length > current.length ? all : current;
});
}
/**
* Get the object with the longest key from array of objects.
*/
function longestKeyObj(arr) {
return arr.reduce(function(all, current) {
return longestKey(all).length > longestKey(current).length ? all : current;
});
}
你可以做:
const me = {
name: 'nabil',
occupation: 'programming',
dob: '1984-12-28',
};
const you = {
longestKey: 'blah!',
};
console.log('The object is: ', longestKeyObj([me, you]));
console.log('The key is: ', longestKey(longestKeyObj([me, you])));
哪些产出:
对象是:{longestKey:'blah!'}
关键是:最长的关键
演示:具有以下功能:
/**
* Get the longest key in an object.
*/
function longestKey(obj) {
return Object.keys(obj).reduce(function(all, current) {
return all.length > current.length ? all : current;
});
}
/**
* Get the object with the longest key from array of objects.
*/
function longestKeyObj(arr) {
return arr.reduce(function(all, current) {
return longestKey(all).length > longestKey(current).length ? all : current;
});
}
你可以做:
const me = {
name: 'nabil',
occupation: 'programming',
dob: '1984-12-28',
};
const you = {
longestKey: 'blah!',
};
console.log('The object is: ', longestKeyObj([me, you]));
console.log('The key is: ', longestKey(longestKeyObj([me, you])));
哪些产出:
对象是:{longestKey:'blah!'}
关键是:最长的关键
演示: