假设我有一些对象的数组:
var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 AM}];
Run Code Online (Sandbox Code Playgroud)
如何从最接近当前日期和时间的日期开始按日期元素对此数组进行排序?请记住,数组可能有很多对象,但为了简单起见,我使用了2.
我会使用sort函数和自定义比较器吗?
UPDATE
在我的具体情况下,我希望日期安排从最新到最旧.结果我不得不颠倒简单函数的逻辑:
array.sort(function(a, b) {
a = new Date(a.dateModified);
b = new Date(b.dateModified);
return a>b ? -1 : a<b ? 1 : 0;
});
Run Code Online (Sandbox Code Playgroud)
这会对最近的日期进行排序.
我有一个ArrayList自定义对象.每个自定义对象都包含各种字符串和数字.即使用户离开活动然后想要稍后返回,我也需要数组停留,但是在应用程序完全关闭后我不需要数组可用.我通过这种方式保存了很多其他对象,SharedPreferences但我无法弄清楚如何以这种方式保存整个数组.这可能吗?也许SharedPreferences这不是解决这个问题的方法吗?有更简单的方法吗?
这是一个非常基本的问题,只是为了满足我的好奇心,但有没有办法做这样的事情:
if(obj !instanceof Array) {
//The object is not an instance of Array
} else {
//The object is an instance of Array
}
Run Code Online (Sandbox Code Playgroud)
这里的关键是能够使用NOT!在实例面前.通常我必须设置它的方式是这样的:
if(obj instanceof Array) {
//Do nothing here
} else {
//The object is not an instance of Array
//Perform actions!
}
Run Code Online (Sandbox Code Playgroud)
当我只想知道对象是否是特定类型时,必须创建一个else语句有点烦人.
我本质上是尝试以编程方式设置EditText的数字值.到目前为止,我有:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Run Code Online (Sandbox Code Playgroud)
这很好,但我也希望能够包含小数位(.).有任何想法吗?
例如:
public String showMsg(String msg) throws Exception {
if(msg == null) {
throw new Exception("Message is null");
}
//Create message anyways and return it
return "DEFAULT MESSAGE";
}
String msg = null;
try {
msg = showMsg(null);
} catch (Exception e) {
//I just want to ignore this right now.
}
System.out.println(msg); //Will this equal DEFAULT MESSAGE or null?
Run Code Online (Sandbox Code Playgroud)
在某些情况下我通常需要基本上忽略异常(通常是在方法中抛出多个异常而在特定情况下无关紧要)所以尽管我为简单起见使用了可怜的例子,但showMsg中的返回仍然会运行或抛出实际上返回方法?
我试图确定我是否实际使用JDBC连接池.经过一些研究,实施几乎看起来太容易了.事实上比常规连接更容易,所以我想验证.
这是我的连接类:
public class DatabaseConnection {
Connection conn = null;
public Connection getConnection() {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/data");
bds.setUsername("USERNAME");
bds.setPassword("PASSWORD");
try{
System.out.println("Attempting Database Connection");
conn = bds.getConnection();
System.out.println("Connected Successfully");
}catch(SQLException e){
System.out.println("Caught SQL Exception: " + e);
}
return conn;
}
public void closeConnection() throws SQLException {
conn.close();
}
Run Code Online (Sandbox Code Playgroud)
}
这是真正的连接汇集吗?我在另一个类中使用连接如下:
//Check data against database.
DatabaseConnection dbConn = new DatabaseConnection();
Connection conn;
ResultSet rs;
PreparedStatement prepStmt;
//Query database and check username/pass against table.
try{
conn = dbConn.getConnection(); …Run Code Online (Sandbox Code Playgroud) 我知道HTMLCollection实际上不是一个数组,否则它将被定义为一个数组.我使用一个帮助函数,我调用isArray()来检测对象是否是一个数组.我在整个地方使用这个小助手,并且在检查htmlCollection时我一直在运行这个返回false的问题.
var isArray: function(obj) {
var type = Function.prototype.call.bind( Object.prototype.toString );
return type(obj) === '[object Array]' || type(obj) === '[object HTMLCollection]';
}
Run Code Online (Sandbox Code Playgroud)
在这个辅助函数中检查htmlCollection类型并假设它与数组相同是不是错了?是什么让它与众不同?除了它的html元素而不是javascript对象.
有没有办法做到这一点?例如,我的偏好设置可以在公制和标准计量单位之间进行转换,当用户更改此设置时,我想更新几个字符串以更改我的应用程序中的某些标签.
当使用AJAX时,我倾向于以JSON对象(又称Javascript)的形式将对象从我的服务器传递给Javascript.我的Javascript中的某些函数依赖于我正在使用的特定类型的对象.例如,让我们使用电话号码.我有一个构造函数:
function PhoneNumber(number, type, isPrimary, contactId, id, className) {
this.number = number;
this.type = type;
this.isPrimary = isPrimary;
this.contactId = contactId;
this.id = id;
this.className = className;
}
Run Code Online (Sandbox Code Playgroud)
在我的Javascript中创建电话号码对象时使用的.在某些情况下,我不在JS中创建对象,我从服务器获取对象,因此它以具有完全相同字段的通用对象的形式出现.因此,当我的代码依赖于特定类型时,使用如下内容:
var objType = objArray[i].constructor.name;
var mappedObj;
switch(objType) {
case 'PhoneNumber':
currentArray = currentArray.phone;
//Convert response to javascript object.
mappedObj = mapPhone(jsonResponse[i]);
break;
case 'Email':
currentArray = currentArray.email;
mappedObj = mapEmail(jsonResponse[i]);
break;
case 'Address':
currentArray = currentArray.address;
mappedObj = mapAddress(jsonResponse[i]);
break;
case 'Website':
currentArray = currentArray.website;
mappedObj = mapWebsite(jsonResponse[i]);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我检查对象构造函数的名称,并根据该名称设置某些变量.如果我检查名称的对象是来自服务器的JSON,它只是给我一个通用的"对象"响应,因此代码不起作用.我通过为每个对象使用映射函数来解决这个问题,例如:
function …Run Code Online (Sandbox Code Playgroud) 我代表客户从我的应用程序发送交易电子邮件.我希望接收器能够单击回复并将回复直接发送给我的客户,而不会触及我的服务器.
如果我从me@myapp.com发送电子邮件并将回复标题设置为customer@gmail.com,我的交易电子邮件会被标记为垃圾邮件吗?这对垃圾邮件过滤器来说是否是最轻微的红旗?重要的是我的电子邮件不会被垃圾邮件文件夹捕获,我花了相当多的时间确保我的电子邮件发送正确,所以我只想在实现类似之前确定.或者这是一个相当普遍的做法,我不应该关心它?