JavaScript:从对象中删除除1个键以外的所有键

时间:2017-10-03 13:43:36

标签: javascript javascript-objects

我有一个对象,我想删除除了与特定键匹配的值之外的所有值。例如,我可以这样做:

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))); } } } 的对象。

2 个答案:

答案 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));