连接对象值
Concatenate Object values
我有一个JavaScript对象,我确信任何键的值都是一个数组(在某些情况下甚至是空的):
{key1:["a","b","c"],key2:["d","e","f"],key3:...}
除了使用Undercore,还有什么方法可以连接这个Object的所有值(并创建一个新数组)吗?
现在我使用Object.keys
获得密钥名称,然后循环并连接。
感谢您的帮助。
var obj = {key1:["a","b","c"],key2:["d","e","f"]};
var arr = Object.keys(obj).reduce(function(res, v) {
return res.concat(obj[v]);
}, []);
// ["a", "b", "c", "d", "e", "f"]
一种简单的方法是使用Object.values()
获取值,并以这种方式将它们与[].concat.apply()
连接:
const _obj = { key1:["a","b","c"], key2:["d","e","f"], key3:["g","h","i"] }
const _arr = [].concat.apply([], Object.values(_obj))
console.log(_arr)
另一种类似的方式是合并Object.values()
,将它们扩展到Array.concat()
中,如下所示:
const _obj = { key1:["a","b","c"], key2:["d","e","f"], key3:["g","h","i"] }
const _arr = [].concat(...Object.values(_obj))
console.log(_arr)
同样,减少Object.values()
的每个值并将其连接,您可以得到相同的结果:
const _obj = { key1:["a","b","c"], key2:["d","e","f"], key3:["g","h","i"] }
const _arr = Object.values(_obj).reduce((r,c) => r.concat(c), [])
console.log(_arr)
最后,还可以对Object.values()
的每个值使用Array.prototype.flat()
。请记住:并非所有浏览器都支持它
const _obj = { key1:["a","b","c"], key2:["d","e","f"], key3:["g","h","i"] }
const _arr = Object.values(_obj).flat()
console.log(_arr)
希望这些方法能帮助到其他人:)
检查数组concat函数
var obj = {key1:["a","b","c"],key2:["d","e","f"],key3:["g","h"]};
var resultArray = [];
for (var key in obj) resultArray = resultArray.concat(obj[key]);
alert(resultArray);
jsfiddle:
http://jsfiddle.net/qpLq11ea/
试试这个:http://jsfiddle.net/6hbp5bzo/
var arr= [];
var o={key1:["a","b","c"],key2:["d","e","f"]}
for(key in o){
if(o.hasOwnProperty(key)){
arr.push(o[key]);
}
}
alert(arr);
相关文章:
- 如何在Javascript中连接两个结构不同的对象
- Will my'新对象'在套接字断开连接时被垃圾收集
- Javascript.连接两组对象的最佳方式,如SQL
- '对象不是函数'当使用angular连接两个json数组时
- 通过Ajax调用PHP文件中的MySQL连接singleton对象
- 连接与数组对象相关的文本:方式和位置
- 如何通过连接多个异步javascript调用,从对象数组中排序并获取第一个obejct
- 在 Javascript 中将对象连接为空格分隔字符串的最简单方法是什么?
- Facebook已连接但我的用户是一个空对象
- Jquery新元素在连接时导致[对象对象]
- 连接对象值
- javascript对象,连接重复的键,同时保留多个值
- 是将连接对象传递给模块更好,还是在模块本身内连接更好
- 在不使用jQuery的情况下连接两个JSON对象
- 如何在 redis 中将 JS 对象传递给它自己的事件参数 - 连接事件上的哨兵
- 当连接在一起时,如何使用两个部分构建 JSON 对象,生成正确的 JSON 数据路径
- 在 JavaScript 不工作对象中连接两个变量
- 将两个 JSON 对象与数组对象连接起来
- 如何将javascript对象连接到函数内动态创建的html元素
- Three.js将两个对象连接为一个对象