我有一个对象,我想删除除了与特定键匹配的值之外的所有值。例如,我可以这样做:
for (var k in obj) {
if (k != key) {
delete obj[k]
}
}
或者我可以迭代:
obj = {
key: obj[key]
}
但我想知道是否有更好的方法。创建一个临时变量并迭代整个对象似乎都是不必要的。我最初的尝试是:
key
但是这导致了一个密钥为 public class VideoAnalysis {
public static void main (String [] args){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
File f = new File("/home/aritra/workspace/oopencv/horror.mp4");
boolean b = f.exists();
System.out.println(b);
VideoCapture capture = new VideoCapture("/home/aritra/workspace/oopencv/horror.mp4");
if(!capture.isOpened()){
System.out.println("could not open this file ");
}
else{
System.out.println("length"+(capture.get(Videoio.CAP_PROP_FRAME_COUNT)));
}
}
}
的对象。
答案 0 :(得分:1)
您确实可以在不使用临时变量的情况下实现您所描述的内容。
function remove(obj, key) {
return Object.assign({}, { [key] : obj[key]});
}
答案 1 :(得分:0)
您可以使用[key]创建一个新对象:obj [key]。
var obj = {
"a":1,
"b":2
};
var key = "a";
function filterByKey(object, key) {
return Object.create({[key]:obj[key]});
}
function filterByKey2(object, key) {
return {[key]:obj[key]};
}
console.log(filterByKey(obj, key));
console.log(filterByKey2(obj, key));