在JavaScript中比较对象的最佳方法是什么?
例:
var user1 = {name : "nerd", org: "dev"};
var user2 = {name : "nerd", org: "dev"};
var eq = user1 == user2;
alert(eq); // gives false
Run Code Online (Sandbox Code Playgroud)
我知道如果它们引用完全相同的对象,则两个对象是相等的,但有没有办法检查它们是否具有相同的属性值?
以下方式对我有用,但这是唯一的可能性吗?
var eq = Object.toJSON(user1) == Object.toJSON(user2);
alert(eq); // gives true
Run Code Online (Sandbox Code Playgroud) 有没有人知道(如果可能的话,还是lodash)通过对象键对对象数组进行分组,然后根据分组创建一个新的对象数组?例如,我有一个汽车对象数组:
var cars = [
{
'make': 'audi',
'model': 'r8',
'year': '2012'
}, {
'make': 'audi',
'model': 'rs5',
'year': '2013'
}, {
'make': 'ford',
'model': 'mustang',
'year': '2012'
}, {
'make': 'ford',
'model': 'fusion',
'year': '2015'
}, {
'make': 'kia',
'model': 'optima',
'year': '2012'
},
];
Run Code Online (Sandbox Code Playgroud)
我想制作一个新的汽车对象数组,按以下方式分组make:
var cars = {
'audi': [
{
'model': 'r8',
'year': '2012'
}, {
'model': 'rs5',
'year': '2013'
},
],
'ford': [
{
'model': 'mustang',
'year': '2012'
}, {
'model': 'fusion',
'year': …Run Code Online (Sandbox Code Playgroud) 在Javascript中合并两个数组的正确方法是什么?
我有两个数组(例如):
var a1 = [{ id : 1, name : "test"}, { id : 2, name : "test2"}]
var a2 = [{ id : 1, count : "1"}, {id : 2, count : "2"}]
Run Code Online (Sandbox Code Playgroud)
我希望能够得到类似的东西:
var a3 = [{ id : 1, name : "test", count : "1"},
{ id : 2, name : "test2", count : "2"}]
Run Code Online (Sandbox Code Playgroud)
基于'id'字段连接两个数组的位置,简单地添加额外数据.
我尝试使用_.union它,但它只是将第二个数组中的值覆盖到第一个数组中
我有以下数组:
var tst =
[
{"topicId":1,"subTopicId":1,"topicName":"a","subTopicName":"w"},
{"topicId":1,"subTopicId":2,"topicName":"b","subTopicName":"x"},
{"topicId":1,"subTopicId":3,"topicName":"c","subTopicName":"y"},
{"topicId":2,"subTopicId":4,"topicName":"c","subTopicName":"z"}
]
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将其映射到topicId> id和topicName> name的这种数组:
var t =
[
{"id":1,"name":"a"},
{"id":2,"name":"c"}
]
Run Code Online (Sandbox Code Playgroud)
我正在使用现代浏览器,如果有帮助,我也有_lodash.请注意,tst数组中将有大约100行,因此我不需要非常优化的解决方案.简单易维护的解决方案更为重要.
我想将此数据数组过滤为州和城市数组.我怎样才能使用lodash或任何其他更好的方式实现这一点,而不是循环和维护额外的数组.
data: [
{ id: 1, name: Mike, city: philps, state: New York},
{ id: 2, name: Steve, city: Square, state: Chicago},
{ id: 3, name: Jhon, city: market, state: New York},
{ id: 4, name: philps, city: booket, state: Texas},
{ id: 5, name: smith, city: brookfield, state: Florida},
{ id: 6, name: Broom, city: old street, state: Florida},
]
Run Code Online (Sandbox Code Playgroud)
用户点击state,状态列表出现.
{state: New York, count: 2},
{state: Texas, count: 1},
{state: Florida, count: 2},
{state: Chicago, count: …Run Code Online (Sandbox Code Playgroud) 我正在寻找做某事的方法
JS
$scope.players = [
{name: 'Gene', team: 'alpha'},
{name: 'George', team: 'beta'},
{name: 'Steve', team: 'gamma'},
{name: 'Paula', team: 'beta'},
{name: 'Scruath', team: 'gamma'}
];
Run Code Online (Sandbox Code Playgroud)
HTML:
<ul repeat.for="obj of players | groupBy: 'team'">
Group name: ${obj.group}
<li repeat.for="player of obj.values">
player: ${player.name}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
有可能吗?或者以Aurelia方式做这种逻辑的更好方法是什么?
我有以下结构
[
{
"category_id" : 1,
"parent_category" : null
} ,
{
"category_id" : 2,
"parent_category" : 1
},
{
"category_id" : 3,
"parent_category" : 1
},
{
"category_id" : 4,
"parent_category" : 2
},
,
{
"category_id" : 5,
"parent_category" : null
},
,
{
"category_id" : 6,
"parent_category" : 5
}
]
Run Code Online (Sandbox Code Playgroud)
所以我有父子关系,我想用以下结构对其进行排序
[
{
"parent_category":[ "array of all children that follow this main parent category" ]
},
{},
{}
]
Run Code Online (Sandbox Code Playgroud)
我见过很多解决方案,但都是关于树结构输出的
谢谢
我有一个 js 对象数组,如下所示:
var objArr = [
{"Country": "US", "City": "MyCity1", "2017-07-12": "1", "2017-07-13": "2"},
{"Country": "US", "City": "MyCity2", "2017-07-12": "2", "2017-07-13": "2"},
{"Country": "CN", "City": "MyCity1", "2017-07-12": "5", "2017-07-13": "7"},
{"Country": "CN", "City": "MyCity2", "2017-07-12": "5", "2017-07-13": "7"}
]
Run Code Online (Sandbox Code Playgroud)
我想创建一个新数组,其中国家/地区是唯一的,但日期也应该相加。
{"Country": "US", "2017-07-12": "3", "2017-07-13": "4"},
{"Country": "CN", "2017-07-12": "10", "2017-07-13": "14"}
^^^^ ^^^^ ^^^^
Run Code Online (Sandbox Code Playgroud)
我很难理解它。我是否必须先过滤,以某种方式减少它,重新映射它,......我不知道从哪里开始?任何帮助将不胜感激,谢谢!
我讨厌这个对象数组,每个对象都有一个日期,我希望能够将这些对象分组为月份。有没有办法转换这个
var data = [
{ date: "2016-08-13",...},
{ date: "2016-07-23",...},
{ date: "2016-08-11",...},
{ date: "2016-08-10",...},
{ date: "2016-07-20",...},
{ date: "2016-07-21",...},
]
Run Code Online (Sandbox Code Playgroud)
变成这样的东西
var data = [
[{ date: "2016-08-13",...},
{ date: "2016-08-11",...},
{ date: "2016-08-10",...}],
[{ date: "2016-07-20",...},
{ date: "2016-07-21",...},
{ date: "2016-07-23",...}[
]
Run Code Online (Sandbox Code Playgroud) 我努力找到我在其他stackoverflow帖子中寻找的解决方案,尽管我强烈地觉得它必须存在.如果确实如此,请向我转发正确的方向.
我试图通过javascript使用体育数据做一个非常标准的组.我有以下对象数组:
const myData = [
{team: "GSW", pts: 120, ast: 18, reb: 11},
{team: "GSW", pts: 125, ast: 28, reb: 18},
{team: "GSW", pts: 110, ast: 35, reb: 47},
{team: "HOU", pts: 100, ast: 17, reb: 43},
{team: "HOU", pts: 102, ast: 14, reb: 32},
{team: "SAS", pts: 127, ast: 21, reb: 25},
{team: "SAS", pts: 135, ast: 25, reb: 37},
{team: "SAS", pts: 142, ast: 18, reb: 27}
]
Run Code Online (Sandbox Code Playgroud)
我的数据中的每一行都对应于特定篮球比赛的结果.简单地说,我想按数据分组,并将均值/平均函数应用于分组数据.我期望的结果是:
const groupedData = [
{team: "GSW", pts: 118.3, …Run Code Online (Sandbox Code Playgroud) javascript ×10
arrays ×4
filter ×3
object ×3
ecmascript-6 ×2
group-by ×2
grouping ×2
lodash ×2
aurelia ×1
comparison ×1
react-native ×1
sorting ×1
tree ×1