我有一个像这样的对象:
var obj = {
"01": ["a","b"],
"03": ["c","d"],
"04": ["e","c"]
};
Run Code Online (Sandbox Code Playgroud)
并且我知道对象键值的数组元素(比如"c")然后如何使用lodash找到第一个键值即"03"而不使用if else?
我尝试使用lodash和if if:
var rId = "";
_.forOwn(obj, function (array, id) {
if (_.indexOf(array, "c") >= 0) {
rId = id;
return false;
}
});
console.log(rId); // "03"
Run Code Online (Sandbox Code Playgroud)
预期结果:第一个键,即"03",如果元素匹配"".
看到评论后:现在我也很想知道
我是否需要使用本机javascript(如果我们使用超过2个if块的情况下难以阅读的程序)或lodash方式(在一行中易于阅读的程序解决方案)?
为什么改变事件不能用于离子选择?
我尝试了以下声明:
<ion-select formControlName="shippingMethod (change)="shippingMethodChange($event)">
Run Code Online (Sandbox Code Playgroud)
我也尝试使用ionChange,这是有效的:
<ion-select formControlName="shippingMethod (ionChange)="shippingMethodChange($event)">
Run Code Online (Sandbox Code Playgroud)
有人说"我们可以使用Angular事件绑定来响应任何DOM事件",这里是更改事件的文档
我正在使用"ionic-angular":"3.2.1"版本,但虚拟列表在一些滚动后显示以下空白屏幕.
我尝试了下面的代码.
<ion-content padding>
<ion-list [virtualScroll]="products" approxItemHeight="100px" [virtualTrackBy]="trackProduct">
<ion-item category-item *virtualItem="let product" (click)="viewProduct(product)">
<img product-image src="some_url.png" />
<div prduct-description ellipsize>
<div product-name ellipsize>{{product.productName || "" | uppercase}}</div>
<div product-sku ellipsize>SKU# : {{product.sku}}</div>
<div price>${{product.price}}/Case</div>
</div>
</ion-item>
</ion-list>
<ion-infinite-scroll (ionInfinite)="doInfinite($event)" threshold="100px" #infiniteScroll>
<ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data...">
</ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>
Run Code Online (Sandbox Code Playgroud)
这里是相关的ts文件代码:
/**
* This method will be used for virtual scroll.
* @param index
* @param product
*/
trackProduct(index, product: Product) {
console.log(index, product);
return product.productId;
}
Run Code Online (Sandbox Code Playgroud)
我也试过没有virtualTrackBy指令,但没有任何工作.
谁能帮助我?
我们有一个信号页应用程序,它已安装并处于活动状态。
现在我们的服务器重建了应用程序,服务端文件正在服务器端更新。
我们的客户对这个新的Service Worker文件一无所知,并且仍在使用旧的Service Worker文件。
什么时候有效? 如果我刷新/重新加载该应用程序,则正在安装新的Service Worker。
如果正在服务器上更新服务工作者文件并且未重新加载客户端,我们如何刷新客户端?
可能的解决方案:我认为,我需要在1小时左右之后进行轮询。
我想在列表中的元素之后添加一个元素,如果列表已经包含该元素,否则我想将这个新元素添加到列表的开头.
不知何故下面的代码不起作用.
有什么建议?
这种方法是否正确地表现出来?
public class HelloWorld
{
public static void main(String[] args) {
LinkedList<Task> l =new LinkedList<Task>();
l.add(new Task("a"));
l.add(new Task("b"));
l.add(new Task("c"));
int index;
if((index = l.lastIndexOf(new Task("a"))) != -1){
l.add(++index, new Task("5"));
}else{
l.addFirst(new Task("6"));
}
System.out.println(l);
}
}
class Task{
String value;
Task(String v){
value = v;
}
public boolean equals(Task t){
return t.value.equals(this.value);
}
public String toString(){
return this.value;
}
}
Run Code Online (Sandbox Code Playgroud)
输出产生: [6,a,b,c]
预期产出: [a,5,b,c]