我需要能够在运行时合并两个(非常简单的)JavaScript对象.例如,我想:
var obj1 = { food: 'pizza', car: 'ford' }
var obj2 = { animal: 'dog' }
obj1.merge(obj2);
//obj1 now has three properties: food, car, and animal
Run Code Online (Sandbox Code Playgroud)
有没有人有这个脚本或知道内置的方法来做到这一点?我不需要递归,我不需要合并函数,只需要平面对象上的方法.
我有一个非常简单的JavaScript数组,可能包含也可能不包含重复项.
var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
Run Code Online (Sandbox Code Playgroud)
我需要删除重复项并将唯一值放在一个新数组中.
我可以指出我尝试过的所有代码,但我认为它没用,因为它们不起作用.我也接受jQuery解决方案.
我想比较两个阵列......理想情况下,有效率.没有什么花哨的,只要true
它们是相同的,false
如果不相同的话.毫不奇怪,比较运算符似乎不起作用.
var a1 = [1,2,3];
var a2 = [1,2,3];
console.log(a1==a2); // Returns false
console.log(JSON.stringify(a1)==JSON.stringify(a2)); // Returns true
Run Code Online (Sandbox Code Playgroud)
每个数组的JSON编码都有,但有没有更快或更"简单"的方法来简单地比较数组而不必迭代每个值?
严格的相等运算符将告诉您两个对象类型是否相等.但是,有没有办法判断两个对象是否相等,就像 Java中的哈希码值一样?
Stack Overflow问题JavaScript中是否有任何类型的hashCode函数?类似于这个问题,但需要更多的学术答案.上面的场景说明了为什么需要有一个,我想知道是否有任何等效的解决方案.
在数组中对对象进行分组的最有效方法是什么?
例如,给定此对象数组:
[
{ Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" },
{ Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" },
{ Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" },
{ Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" },
{ Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" },
{ Phase: "Phase 2", Step: "Step 1", Task: "Task 2", Value: "30" …
Run Code Online (Sandbox Code Playgroud) 我有以下......
chrome.extension.sendRequest({
req: "getDocument",
docu: pagedoc,
name: 'name'
}, function(response){
var efjs = response.reply;
});
Run Code Online (Sandbox Code Playgroud)
它调用以下..
case "getBrowserForDocumentAttribute":
alert("ZOMG HERE");
sendResponse({
reply: getBrowserForDocumentAttribute(request.docu,request.name)
});
break;
Run Code Online (Sandbox Code Playgroud)
但是,我的代码永远不会到达"ZOMG HERE",而是在运行时抛出以下错误 chrome.extension.sendRequest
Uncaught TypeError: Converting circular structure to JSON
chromeHidden.JSON.stringify
chrome.Port.postMessage
chrome.initExtension.chrome.extension.sendRequest
suggestQuery
Run Code Online (Sandbox Code Playgroud)
有谁知道是什么原因引起的?
如何比较javascript中的2个函数?我不是在谈论内部参考.说
var a = function(){return 1;};
var b = function(){return 1;};
Run Code Online (Sandbox Code Playgroud)
有可能比较a
和b
?
可能重复:
JavaScript中的对象比较
是否有任何方法接受2个JSON对象并比较2以查看是否有任何数据已更改?
编辑
在审查评论之后,需要做出一些澄清.
JSON对象定义为
"一组无名的名称/值对.一个对象以{(左括号)开头,以}结尾(右大括号).每个名称后跟:(冒号),名称/值对用(逗号)分隔".- json.org
我的目标是能够比较2个JSON对象文字,简单地说.
我不是一个javascript大师所以,如果,在javascript中,这些是对象文字,那么我想这就是我应该称之为.
我相信我正在寻找的是一种能够:
我有这个代码:
var object1 = {same:'test'}
var object2 = {same:'test'};
console.log(object1 === object2)
Run Code Online (Sandbox Code Playgroud)
它在控制台中返回false.
我也有这个代码:
var object1 = {same:'test'}
var object2 = object1;
console.log(object1 === object2)
Run Code Online (Sandbox Code Playgroud)
它在控制台中返回true.
我知道'==='是一个相等运算符,但我不知道它是如何在对象上运行的.
为什么第一个示例返回false?
如果我有两个数组或对象并想要比较它们,例如
object1 = [
{ shoes:
[ 'loafer', 'penny' ]
},
{ beers:
[ 'budweiser', 'busch' ]
}
]
object2 = [
{ shoes:
[ 'loafer', 'penny' ]
},
{ beers:
[ 'budweiser', 'busch' ]
}
]
object1 == object2 // false
Run Code Online (Sandbox Code Playgroud)
如果您从服务器获得响应并尝试查看它是否已更改,这可能会很烦人
javascript ×10
arrays ×4
json ×3
object ×3
compare ×1
comparison ×1
duplicates ×1
equals ×1
function ×1
group-by ×1
hashcode ×1
unique ×1