基本上,我有一个名为"Employees"的Container类,其中包含一个ArrayList.此ArrayList包含"Employee"对象,后者又包含"EmployeeData"对象,而这些对象又包含String对象,例如"first"或"last"(这是员工姓名).
这是ArrayList结构的图表:
ArrayList[Employee] emps ==> 1:Many ==> Employee emp
Employee emp ==> 1:1 ==> EmployeeData data
EmployeeData data ==> 1:2 ==> String last // A string that contains employee's last name.
Run Code Online (Sandbox Code Playgroud)
我将如何在ArrayList上执行快速排序,以便其中的"Employee"对象基于String对象"last"按字母顺序排列?看起来有点复杂!
这是我的课程的基本设计:
class Employees{
//data:
private ArrayList<Employee> emps = new ArrayList<Employee>();
//Some constructors go here
//Methods to add, remove, toString, etc, go here
public /*output a sorted ArrayList?*/ sort(){
// Some kind of "quicksort" in here to modify or create a new ArrayList sorted by employee's las name...
} …Run Code Online (Sandbox Code Playgroud) 只是好奇是否有一种简单的方法在$(window).load()事件被触发之前添加函数.例如,如果$(window).load()在页面开头调用两次,则只执行第二次调用的功能onload.
是否有某种工具内置到jQuery中以添加到onload事件而不是替换它?如果是这样,那$(document).ready()电话怎么样?
是否有专门针对Chrome的jQuery调试器?似乎无法找到一个.
编辑:我真正的意思是:是否有专门用于调试jQuery的调试器,而不仅仅是javascript?
我根本不认为它可能,但我只是想知道,因为我的朋友在他的页面上有这个:
<html>
<head></head>
<body>
<script>
$(function(){
// ...
});
</script>
<div><span>html stuff</span></div>
<script src="jquery-1.7.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
所以我只是想知道,这是有效的吗?jQuery是否会$(function(){});在完成加载后使用该块并使其工作?
可能重复:
等于和==之间的差异
例如,如果我有
MyClass foo = new MyClass();
MyClass bar = new MyClass();
if (foo == bar) {
// do something
}
if (foo < bar) {
// do something
}
if (foo > bar) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
怎么做foo和bar比较?Java是否在寻找.compareTo()要实现的方法MyClass?Java是否在内存中比较对象的实际二进制结构位?
例如,
假设我们有<div is="awesomebutton"></div>一个自定义元素定义:
document.registerElement('awesomebutton', AwesomeButton)
Run Code Online (Sandbox Code Playgroud)
is=""删除属性或用新值替换属性时的预期行为是什么?
我有一个元素的引用,该元素有时会升级为自定义元素。我如何等待它升级?
例如,假设el是参考。如果假设为此目的附加了承诺,则代码可能类似于
await el.upgradePromise
// do something after it has been upgraded.
Run Code Online (Sandbox Code Playgroud)
那当然不存在,但是描述了我想做什么。也许没有轮询就没有办法吗?如果使用轮询,我将轮询什么(假设我没有对应该升级到的类构造函数的引用)。也许我可以轮询el.constructor并等待其不属于HTMLElement,或等待它不被HTMLUnknownElement?
编辑:对于背景,我有一些类似以下的代码,其中使用setTimeout是为了使代码正常工作的技巧。第一个console.log输出false,而超时中的一个输出true。
import OtherElement from './OtherElement'
class SomeElement extends HTMLElement {
attachedCallback() {
console.log(this.children[0] instanceof OtherElement) // false
setTimeout(() => {
console.log(this.children[0] instanceof OtherElement) // true
}, 0)
}
}
Run Code Online (Sandbox Code Playgroud)
在哪里OtherElement引用将在某个时候注册的Custom Element类。请注意,我使用的是Chrome v0 document.registerElement。需要超时,因为如果SomeElement首先按以下代码OtherElement注册,则将尚未注册,因此,因此如果SomeElement元素的子级是的实例OtherElement,那么在升级这些元素之前不会如此下一个。
document.registerElement('some-el', SomeElement)
document.registerElement('other-el', OtherElement)
Run Code Online (Sandbox Code Playgroud)
理想情况下,这样的超时是不希望的,因为如果升级花费了更长的时间(由于某些未知原因,可能取决于浏览器的实现),那么超时破解也将失败。
我想要一种绝对的方式来等待升级,而不会出现故障,并且如果可能的话也不会进行轮询。也许过一段时间也需要取消吗?
编辑:理想的解决方案将使我们能够等待任何第三方自定义元素的升级,而无需在运行前修改这些元素,也不必在运行时进行猴子补丁。
编辑:从观察Chrome的v0行为来看,似乎第一个调用document.registerElement('some-el', SomeElement)导致那些元素升级,并且在注册之前attachedCallback …
我试图找到一个很好的理由来Reflect.construct实现一些我以前无法实现的值得注意的事情。
我不是在寻找像这里的答案,因为那个例子似乎不是很有用。例如,我为什么要写
function greetingFactory(name) {
return Reflect.construct(Greeting, [name]);
}
Run Code Online (Sandbox Code Playgroud)
当我可以写
function greetingFactory(name) {
return new Greeting(name);
}
Run Code Online (Sandbox Code Playgroud)
?
你知道任何值得注意的用例Reflect.construct吗?
编辑:似乎我自己找到了一个用例,但我不确定它是否可靠以及它是否不会分崩离析,但基本上似乎我可以new.target通过编写它们来使用 ES5 样式的类这个:
function Foo() {
console.log('Foo, new.target:', new.target)
this.name = "foo"
}
Foo.prototype.sayHello = function sayHello() {
return this.name
}
function Bar() {
console.log('Bar, new.target:', new.target)
let _ = Reflect.construct(Foo, [], new.target)
_.name = _.name + " bar"
return _
}
Bar.prototype = Object.create(Foo.prototype)
Bar.prototype.sayHello = function() {
return "Hello " + …Run Code Online (Sandbox Code Playgroud) 例如,我有一个方法,通过字符串查找由指定的分隔符分隔的数据,但有些项可能是名称,其他项可能是数字.
如果用户调用我的方法从已删除列表中返回项目编号X,我希望它在项目X是名称时返回字符串,或者如果项目X是数字则返回双精度.
例如,objectName.get(5);将获得已删除列表中的第5项.
我是否必须使用某种类型的重载?
或者我是否必须做一些类似的事情objectName.getDouble(5);并objectName.getString(5);基于用户知道项目5是什么的事实?
但是如果用户不知道项目5是什么呢?他只需要一个String或一个Double,取决于它碰巧是什么.
javascript ×4
java ×3
jquery ×3
html ×2
polymer ×2
arraylist ×1
arrays ×1
conditional ×1
css ×1
debugging ×1
dom ×1
events ×1
load ×1
methods ×1
onload ×1
overloading ×1
quicksort ×1
reflection ×1
return-type ×1
return-value ×1
sorting ×1