Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中对象的映射_Javascript - Fatal编程技术网

Javascript JS中对象的映射

Javascript JS中对象的映射,javascript,Javascript,我有一个这样的物体 {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":"","7":"","8":"","9":6,"10":7,"11":"","12":8,"13":9,"14":10} 或者最初是一个数组: [{"id":0,"tag":0},{"id":1,"tag":1},{"id":2,"tag":2},{"id":3,"tag":3},{"id":4,"tag":4},{"id":5,"tag":5},{"id":6,"tag":""},{"id"

我有一个这样的物体

{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":"","7":"","8":"","9":6,"10":7,"11":"","12":8,"13":9,"14":10}
或者最初是一个数组:

[{"id":0,"tag":0},{"id":1,"tag":1},{"id":2,"tag":2},{"id":3,"tag":3},{"id":4,"tag":4},{"id":5,"tag":5},{"id":6,"tag":""},{"id":7,"tag":""},{"id":8,"tag":""},{"id":9,"tag":6},{"id":10,"tag":7},{"id":11,"tag":""},{"id":12,"tag":8},{"id":13,"tag":9},{"id":14,"tag":10}]
最后,我想检索一个相同的对象,但只使用key:value with value is not=to zero

比如:

{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"9":6,"10":7,"12":8,"13":9,"14":10}

假设你的意思是空而不是0,这就是你想要的

const sample = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":"","7":"","8":"","9":6,"10":7,"11":"","12":8,"13":9,"14":10};
Object.fromEntries(Object.entries(sample).filter(([k,v])=> v !== ''));
如果您想将其用于自定义值,可以构建一个简单的函数

const filterFromObjectWhereValueIs = (source, targetValue) => Object.fromEntries(Object.entries(source).filter(([k,v])=> v !== targetValue));
所以你的例子是

console.log(filterFromObjectWhereValueIs(sample,''))

只需
筛选出带有falsy
标记的对象(
0
,空字符串为falsy):

例如:

让arr=[{“id”:0,“tag”:0},{“id”:1,“tag”:1},{“id”:2},{“id”:3,“tag”:3},{“id”:4,“tag”:4},{“id”:5,“tag”:5},{“id”:6,“tag”:“},{“id”:7,“tag”:“},{“tag”},{“id”:8,“tag”:6},{“id”:9,“tag 6},{“id”:10,“tag”:7,{“id”:11,“tag 12”,“tag 12”,“tag”:13},{“tag;
让结果=arr.filter(o=>o.tag);

控制台日志(结果)既然您明确表示希望相同的对象,那么这就是您可以做到的方法

const input={0:0,1:1,2:2,3:3,4:4,5:5,6:“,”7:“,”8:“,”9:6,“10:7”,“11:“,”12:8,“13:9”,“14:10};
for(让输入键输入){
如果(输入[键]='')
删除输入[键];
}

控制台日志(输入)您可以过滤条目并获取一个对象

var data={0:0,1:1,2:2,3:3,4:4,5:5,6:,7:,8:,9:6,10:7,11:,12:8,13:9,14:10},
结果=Object.fromEntries(
对象
.条目(数据)
.filter(([,v])=>v!='')
);

控制台日志(结果)抱歉,我没有跟踪您的结果第一个值为0您查看了吗?如果要将其切换到数组-?在阅读和理解了这两个链接之后,你想做的事情非常简单。顺便说一句,这应该是一个数组。你的对象模拟了一个数组。只需使用
[0,1,2,3,4,5],'','','',6,7'','',8,9,10]
就可以在将来省去很多麻烦。然后可以使用array.filter()删除空格。请访问,查看和。做一些研究,搜索相关话题等;如果你被卡住了,张贴一份你的尝试,记下输入和预期输出。
console.log(filterFromObjectWhereValueIs(sample,''))
let results = arr.filter(o => o.tag);